Hinzufügen eines CheckChanged event-handler CheckBox innerhalb eines UserControl dynamisch Hinzugefügt

Ich habe ein Benutzersteuerelement enthält ein Kontrollkästchen und ein Textfeld:

<asp:CheckBox runat="server" ID="chk1" />
<asp:TextBox runat="server" ID="tb1" />

Auf Page_Load ich bin hinzufügen, einige von Ihnen dynamisch Sie ein Panel auf der Seite:

 //loop through the results from DB
 foreach (Thing t in Things)
 {
    //get the user control
    MyUserControl c1 = (MyUserControl )Page.LoadControl("~/UserControls/MyUserControl.ascx");

    //set IDs using public properties
    c1.ID = "uc" + t.ID;
    c1.CheckBoxID = "chk" + t.ID;
    cl.TextBoxID = "tb" + t.ID;

    //add it to the panel
    myPanel.Controls.Add(c1);

    //add the event handler to the checkbox
    ((CheckBox)myPanel.FindControl(c1.ID).FindControl(c1.CheckBoxID)).CheckedChanged += new EventHandler(CheckBox_CheckedChanged);   
 }

Dann habe ich die Methode für den event-handler in der gleichen Seite:

protected void CheckBox_CheckedChanged(object sender, EventArgs e)
{
       string test = "breakpoint here";
}

Wenn ich einen Haltepunkt in CheckBox_CheckedChanged es ist nie der hit, wenn meine checkbox geklickt wird.

Wenn ich mir den Quelltext anzeigen, dies ist der code, der generiert wird:

<input id="ctl00_body_uc1_chk1" type="checkbox" name="ctl00$body$uc1$chk1" checked="checked" />

Also, es scheint nicht zu sein, aufnehmend, wenn ich den event-handler. Es ist seltsam, denn es nimmt alles andere aber.

Bin ich etwas fehlt?

InformationsquelleAutor Ozzie Perez | 2009-09-30
Schreibe einen Kommentar