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

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

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

url rewriting - How to redirect a http POST with urlrewritefilter -