我有一个表格数据,其中每行的最后一列都添加了动态链接按钮。
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
根本没有触发。
您的问题是您正在动态创建 LinkButton,并且在加载页面时不会再次重新创建它。
如果动态创建控件,然后在回发时创建控件,则不会再次创建它(在Page_Load
中或最好在Page_Init
中),则不会触发事件。
解决此问题的一种方法是使用隐藏字段:
动态创建链接按钮时,请为隐藏字段设置特殊值。然后,在Page_Load
(在if (IsPostback)
)中检查隐藏字段,如果它具有特殊值 - 再次重新创建所有这些控件。