我想为表格中的每个单元格动态创建按钮,这样可以正常工作。问题是我现在想要为它们分配服务器端点击事件,如下所示:
Button b = new Button();
b.Text = "Delete";
b.CssClass = "btnDelete";
b.Click += new EventHandler(this.deletePictures_Click);
虽然这将是我的deletePictures_Click:
private void deletePictures_Click(object sender, EventArgs e)
{
test.Text = "hi";
}
但它不会开火。我做了很多研究,但找不到任何帮助我的东西。你们知道什么是错的吗?
提前致谢!
修改
这是呈现的HTML
<td class="resultCell">
<img class="resultpicture" src="photos/DSC_101.jpg">
<input name="ctl00$cphContentBox$ctl02" value="Delete" class="btnDelete" type="submit"></td>
修改
我保存了List中的所有按钮,然后保存在Session中。在OnInit中,我迭代了List,为每个人分配了Button.OnClientClick。但事件仍然不会发生!这是代码:
protected override void OnInit(EventArgs e)
{
base.OnInit(e);
if (Session["buttons"] != null)
{
buttons = (List<Button>)Session["buttons"];
for (int i = 0; i < buttons.Count; i++)
{
buttons[i].OnClientClick += new EventHandler(deletePictures_Click);
}
}
}
答案 0 :(得分:0)
简单的想法是使用grid-view
代替表格。
在上述问题中,您需要在pre_init
evetn上重新创建元素。
这是一个很好的链接
http://social.msdn.microsoft.com/Forums/en-US/dbc12b8c-8796-4800-a45f-57f24b8ef72b/dynamically-created-button-event-is-not-working
答案 1 :(得分:0)
你需要创建一个对象数组(我想它们的集合),然后用foreach构造循环它们
在学校我用java做了,在带有foreach和集合的表格中打印按钮