Asp.net动态链接按钮没有引发事件

时间:2012-11-25 07:14:35

标签: asp.net event-handling

我有一个表格数据,其中每行的最后一列添加了一个动态链接按钮。

LinkButton link = new LinkButton();
link.Text = "Edit";
link.ID = dt.Rows[dt.Rows.IndexOf(dtRow)][0].ToString() + "|" + dt.Rows[dt.Rows.IndexOf(dtRow)][1].ToString();
link.ClientIDMode = System.Web.UI.ClientIDMode.AutoID;
cell.Controls.Add(link);
link.Click += new EventHandler(EditClicked);

显示编辑链接,点击它也会回发帖子但是事件EditClicked根本没有被触发。

1 个答案:

答案 0 :(得分:0)

您的问题是,您在加载网页时动态创建了LinkBut​​ton,而不是重新创建

如果你动态创建一个控件然后在回发时,你不再创建它(在Page_Load或最好在Page_Init中),那么事件不会被触发。

解决此问题的一种方法是使用隐藏字段:
动态创建链接按钮时,请将特殊值设置为隐藏字段。 然后,在Page_Load(在if (IsPostback)中)检查隐藏字段,如果它具有特殊值,则再次重新创建所有这些控件。