【发布时间】:2011-10-10 13:09:48
【问题描述】:
我在asp.net 中动态生成的按钮及其事件处理程序存在一个小问题。我为特殊用户生成了一个带有附加按钮的灵活表格。按钮将动态生成,效果很好。但我无法让事件处理程序工作。
以下是我的代码中的一些片段: 构建按钮(在自己的函数中)。
…
Button ButtonChange = new Button();
ButtonChange.Text = "Change";
ButtonChange.ID = "change_" + i.ToString();
ButtonChange.Font.Size = FontUnit.Point(7);
ButtonChange.ControlStyle.CssClass = "button";
ButtonChange.Click += new EventHandler(test);
…
还有
void test(object sender, EventArgs e)
{
// Do some stuff
}
我的Page_Load 是空的。
但是如果我点击按钮,程序不会跳转到测试。怎么了?
编辑!!! 问题是我一开始不知道我从我的 sql 查询中得到了多少行。对于每一行,我将添加一个删除和一个更改按钮。 我在我的程序中调用了一个将结果构建为表格的方法。 在这个方法中,我检查当前用户是否是 AdminUser,如果是,我将调用 buildAdminButtons 函数。 在这里,我在新列中为每一行创建按钮。我怎么能在 OnLoad 中得到这个?
private void buildAdminButtons(TableRow tempRow, int i)
{
Button ButtonDelete = new Button();
Button ButtonChange = new Button();
TableCell change = new TableCell();
TableCell delete = new TableCell();
ButtonChange.Text = "Change";
ButtonChange.ID = "change_" + i.ToString();
ButtonChange.Font.Size = FontUnit.Point(7);
ButtonChange.ControlStyle.CssClass = "button";
ButtonDelete.Text = "Delete";
ButtonDelete.ID = "delete_" + i.ToString();
ButtonDelete.Font.Size = FontUnit.Point(7);
ButtonDelete.ControlStyle.CssClass = "button";
change.Controls.Add(ButtonChange);
delete.Controls.Add(ButtonDelete);
tempRow.Cells.Add(change);
tempRow.Cells.Add(delete);
}
我为每个按钮添加了一个唯一的 ID,一开始我并不知道。我该怎么办?
【问题讨论】:
标签: c# asp.net button dynamic event-handling