asp.net - programmatically added click event in user control won't fire -


i'm having issues getting click event button contained within programmatically added user control fire. understand event must wired each time new user control added, , i'm pretty sure i'm doing that, still nothing. click event button works fine first user control, not added programmatically. here's markup user control....

<asp:panel id="pnladdressform" runat="server">     <asp:label id="lblstreet" runat="server" text="street address"></asp:label>     <asp:textbox id="txtstreet" runat="server"></asp:textbox>     <br /><br />     <asp:label id="lblcity" runat="server" text="city"></asp:label>     <asp:textbox id="txtcity" runat="server"></asp:textbox>     <br /><br />     <asp:label id="lblstate" runat="server" text="state"></asp:label>     <asp:textbox id="txtstate" runat="server"></asp:textbox>     <br /><br />     <asp:label id="lblzip" runat="server" text="zip"></asp:label>     <asp:textbox id="txtzip" runat="server"></asp:textbox>     <br /><br />     <asp:button id="btnremoveaddress" runat="server" text="remove address" onclick="btnremoveaddress_click" /> </asp:panel> 

...and here's markup main page...

<form id="form1" runat="server">     <div>         <my:formusercontrol runat="server" id="myformusercontrol" />         <br /><br />         <hr />         <my:addressusercontrol runat="server" id="myaddressusercontrol" />         <br /><br />         <asp:placeholder id="phaddresses" runat="server"></asp:placeholder>         <br /><br />         <asp:button id="btnaddaddress" runat="server" text="add address" onclick="btnaddaddress_click" />     </div>         <br /><br />         <hr />         <asp:button id="btnsubmit" runat="server" text="create pdf" onclick="btnsubmit_click" />     </form> 

..as can see contains 1 addressusercontrol declaratively. subsequent addressusercontrols added phaddresses once btnaddaddress clicked. addressusercontrols added way in code behind...

    private static list<addressusercontrol> addresses = new list<addressusercontrol>();  protected void page_preinit(object sender, eventargs e)         {     int addresscount = 0;                 foreach (addressusercontrol acntrl in addresses)                 {                     literal ltlspace = new literal();                     ltlspace.text = "<br /><br />";                     phaddresses.controls.add(acntrl);                     phaddresses.controls.add(ltlspace);                     addresscount++;                 } }  when btnaddaddress click event handler runs...          protected void btnaddaddress_click(object sender, eventargs e)         {             addressusercontrol acntrl = loadcontrol("~/usercontrols/addressusercontrol.ascx") addressusercontrol;             findaddresscontrolremovebutton(acntrl);             addressusercontrolbutton.id = "btnremoveaddress" + addresses.count + 1;             addressusercontrolbutton.click += new eventhandler(addressusercontrolbutton_click);             addresses.add(acntrl);         } 

...and here's addressusercontrolbutton event handler. never runs, suppose i'm not adding correctly in above handler?

    private void addressusercontrolbutton_click(object sender, eventargs e)     {         button thisbutton = sender button;         thisbutton.text = "why hello";     } 

edit - ok, moved eventhandler assignment page_preinit instead of within btnaddaddress_click, so....

 protected void page_preinit(object sender, eventargs e) {              int addresscount = 0;             foreach (addressusercontrol acntrl in addresses)             {                 literal ltlspace = new literal();                 ltlspace.text = "<br /><br />";                 phaddresses.controls.add(acntrl);                 findaddresscontrolremovebutton(acntrl);                 addressusercontrolbutton.id = "btnremoveaddress" + addresscount;                 addressusercontrolbutton.click += new eventhandler(addressusercontrolbutton_click);                 phaddresses.controls.add(ltlspace);                 addresscount++;             }         } 

not totally clear on why or how fixed problem though.

when add control programmatically, need register click event after that.


Comments

Popular posts from this blog

html - How to style widget with post count different than without post count -

How to remove text and logo OR add Overflow on Android ActionBar using AppCompat on API 8? -

mysql - Pass value between different pages (form) with PHP -