ASP.Net中动态创建控件的事件

时间:2012-02-28 16:30:05

标签: asp.net events dynamic controls

我创建了一个应用程序,我在按钮的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()上,则相同的代码可以正常工作。是否还有其他解决方案可以解雇此事件。

1 个答案:

答案 0 :(得分:1)

我建议您阅读MSDN上的以下文章。这是关于页面生命周期。关键部分是何时创建控件。如果控件是在错误的阶段创建的,则不会注册事件,因此不会触发事件。

http://msdn.microsoft.com/en-us/library/ms178472%28v=vs.80%29.aspx