使用onclick功能动态创建按钮

时间:2014-05-13 07:21:15

标签: asp.net webforms

我想为表格中的每个单元格动态创建按钮,这样可以正常工作。问题是我现在想要为它们分配服务器端点击事件,如下所示:

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);
        }
    }
}

2 个答案:

答案 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和集合的表格中打印按钮