And*_*ter 8 c# asp.net dynamic button event-handling
我在这里有一个小问题,动态生成按钮及其在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);
…
Run Code Online (Sandbox Code Playgroud)
和
void test(object sender, EventArgs e)
{
// Do some stuff
}
Run Code Online (Sandbox Code Playgroud)
我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);
}
Run Code Online (Sandbox Code Playgroud)
我在每个按钮上添加一个唯一的ID,我在开始时就不知道.我怎么能处理这个?
ada*_*ost 14
您必须将该代码放入page_load或page_init 事件中.
protected void Page_Load()
{
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);
}
Run Code Online (Sandbox Code Playgroud)
阅读MSDN文章 - 如何:以编程方式将控件添加到ASP.NET网页?
| 归档时间: |
|
| 查看次数: |
50733 次 |
| 最近记录: |