我创建了一个应用程序,我在按钮的Click事件上创建了动态控件。但动态创建的控制事件不会在点击它时触发。 以下是我编写的代码。
ImageButton closeImage = new ImageButton();
closeImage.ID = "ID"+ dr["ID"].ToString();
closeImage.AlternateText = "Delete";
closeImage.ImageUrl = "App_Themes/images/CloseButton.png";
closeImage.Attributes.Add("style", "float:right;cursor:pointer;margin: -19px 1px -10px;");
closeImage.EnableViewState = true;
closeImage.CommandName = "Delete";
closeImage.CommandArgument = dr["ID"].ToString();
closeImage.Attributes.Add("runat", "server");
closeImage.OnClientClick = "return confirm('Are you sure you want to remove this');";
closeImage.Click += new ImageClickEventHandler(this.closeImage_click);
protected void closeImage_click(object sender, ImageClickEventArgs e)
{
ImageButton ibDel = (ImageButton)sender;
}
如果将相同的代码置于Page_Load()上,则相同的代码可以正常工作。是否还有其他解决方案可以解雇此事件。
答案 0 :(得分:1)
我建议您阅读MSDN上的以下文章。这是关于页面生命周期。关键部分是何时创建控件。如果控件是在错误的阶段创建的,则不会注册事件,因此不会触发事件。
http://msdn.microsoft.com/en-us/library/ms178472%28v=vs.80%29.aspx