2012-02-28 18 views
0

ボタンのクリックイベントで動的コントロールを作成したアプリケーションを作成しました。しかし、動的に作成されたコントロールイベントは、それをクリックすると起動しません。 以下は私が書いたコードです。ASP.Netの動的に作成されたコントロールのイベント

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

MSDNの次の記事をお読みになることをお勧めします。それはページのライフサイクルについてです。重要な部分は、コントロールが作成されるときです。コントロールが間違ったステージで作成された場合、イベントは登録されず、起動もされません。

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

関連する問題