c# - Events do not fire in Custom User Control -


i relatively new asp.net, , having trouble creating custom user control. trying create textbox , image button. when image button clicked, gridview pops various choices select from. haven't fleshed out, problem keep running imagebutton onclick event not fire. running breakpoint on onclick command, never seem fire.

i've checked many forums, couldn't find information solved issue. i'm including code user control web form running it. sorry confusion in question. advice or points toward info. if think there topic should google don't afraid let me know. sorry ugly code(i'll take basic coding advice can get). btw i've imported ajax toolkit updatepanel/scriptmanager. in advance.

--custom control ascx

<%@ control language="c#" autoeventwireup="true" codebehind="webusercontrol1.ascx.cs" inherits="customcntrl.webusercontrol1" classname="webusercontrol1" enableviewstate="true"%>      <asp:scriptmanager id="scriptmanager1" runat="server"></asp:scriptmanager> <asp:updatepanel runat="server" rendermode="inline" id="updatepanel1">     <contenttemplate>         <asp:textbox id="txtoutput" runat="server"></asp:textbox>     </contenttemplate> </asp:updatepanel>  <asp:imagebutton id="ibtnlkup" causesvalidation="false" runat="server" imageurl="~/images/lookup.png" onclick="ibtnlkup_click" oncommand="ibtnlkup_command"  />  <ajaxtoolkit:modalpopupextender id="modalpopupextender1" runat="server" targetcontrolid="ibtnlkup" popupcontrolid="panel1" cancelcontrolid="btncancel" dropshadow="true"></ajaxtoolkit:modalpopupextender>  <asp:panel id="panel1" runat="server">         <asp:gridview runat="server" id="gvsrch" onrowcancelingedit="gvsrch_rowcancelingedit" onrowdeleting="gvsrch_rowdeleting" onrowupdating="gvsrch_rowupdating" onselectedindexchanging="gvsrch_selectedindexchanging"></asp:gridview>         <asp:textbox id="textbox2" runat="server"></asp:textbox>         <asp:button id="btnsearch" runat="server" text="search" />         <asp:button id="btncancel" runat="server" text="cancel" />  </asp:panel> 

--custom control ascx.cs--

using system; using system.collections.generic; using system.linq; using system.data; using system.web; using system.web.ui; using system.web.ui.webcontrols;  namespace customcntrl {         public partial class webusercontrol1 : system.web.ui.usercontrol     {         public event eventhandler evlookupbtn;         public event eventhandler evselectbtn;         public event eventhandler evdeletebtn;         public event eventhandler eveditbtn;         public string simgbtnurl { get; set; }         public datatable dtlookup { get; set; }         public bool bselectbtn { get; set; }         public bool beditbtn { get; set; }         public bool bdeletebtn { get; set; }         public bool bpaging { get; set; }         public int pagesize { get; set; }          protected void onpreinit() {             //ibtnlkup.click += ibtnlkup_click;             //imagebutton ib = (imagebutton)ibtnlkup;             //ib.click += new eventhandler(ibtnlkup_click(this.ibtnlkup, imageclickeventargs.empty ));             panel1.controls.add(ibtnlkup);         }        /* public event imageclickeventhandler ibtnlkup_click{             add { ibtnlkup.click += value; }             remove { ibtnlkup.click -= value; }         }*/         protected void page_load(object sender, eventargs e)         {             //ibtnlkup.click += ibtnlkup_click;              ibtnlkup.imageurl = simgbtnurl;         }          protected void ibtnlkup_click(object sender, imageclickeventargs e)         {                            //panel1.visible = true;             //updatepanel1.visible = true;             //gvsrch.visible = true;             gvsrch.visible = true;             //updatepanel1.visible = true;             panel1.visible = true;                 gvsrch.autogenerateselectbutton = bselectbtn;             gvsrch.autogenerateeditbutton = beditbtn;             gvsrch.autogeneratedeletebutton = bdeletebtn;             if (bpaging == true)             {                 gvsrch.allowpaging = bpaging;                 gvsrch.pagesize = pagesize;             }             else gvsrch.allowpaging = false;              gvsrch.datasource = dtlookup;             gvsrch.databind();             if(evlookupbtn !=null)             evlookupbtn(this, eventargs.empty);             //panel1.visible = true;             //updatepanel1.visible = true;             //gvsrch.visible = true;         }          protected void gvsrch_selectedindexchanging(object sender, gridviewselecteventargs e)         {             evselectbtn(this, eventargs.empty);         }          protected void gvsrch_rowupdating(object sender, gridviewupdateeventargs e)         {             eveditbtn(this, eventargs.empty);         }          protected void gvsrch_rowdeleting(object sender, gridviewdeleteeventargs e)         {             evdeletebtn(this, eventargs.empty);         }          protected void gvsrch_rowcancelingedit(object sender, gridviewcancelediteventargs e)         {             e.cancel = true;             gvsrch.editindex = -1;             gvsrch.databind();//rebind data?         }        /*  protected void ibtnlkup_click1(object sender, imageclickeventargs e)         {                             //panel1.visible = true;             //updatepanel1.visible = true;             //gvsrch.visible = true;             gvsrch.visible = true;             //updatepanel1.visible = true;             panel1.visible = true;                  gvsrch.autogenerateselectbutton = bselectbtn;             gvsrch.autogenerateeditbutton = beditbtn;             gvsrch.autogeneratedeletebutton = bdeletebtn;             if (bpaging == true)             {                 gvsrch.allowpaging = bpaging;                 gvsrch.pagesize = pagesize;             }             else gvsrch.allowpaging = false;              gvsrch.datasource = dtlookup;             gvsrch.databind();             if (evlookupbtn != null)                 evlookupbtn(this, eventargs.empty);             //panel1.visible = true;             //updatepanel1.visible = true;             //gvsrch.visible = true;         }    */         protected void ibtnlkup_command(object sender, commandeventargs e)         {          }     } } 

--test.aspx--

<%@ page language="c#" autoeventwireup="true" codebehind="test.aspx.cs" inherits="customcntrl.webform1"enableviewstate="true" %>  <%@ register src="~/usercontrols/webusercontrol1.ascx" tagprefix="uc1" tagname="webusercontrol1" %>  <!doctype html>      <html xmlns="http://www.w3.org/1999/xhtml">     <head runat="server">         <title runat="server"></title>     </head>     <body>         <form id="form1" runat="server">         <div>             <uc1:webusercontrol1 runat="server" id="webusercontrol1" simgbtnurl="~/images/lookup.png" bdeletebtn="false" beditbtn="false" bselectbtn="true" bpaging="false"/>         </div>             <asp:label id="labeltest" runat="server" text=""></asp:label>         </form>     </body>     </html> 

--test aspx.cs--

using system; using system.collections.generic; using system.linq; using system.data; using system.web; using system.web.ui; using system.web.ui.webcontrols;  namespace customcntrl {     public partial class webform1 : system.web.ui.page     {         protected void webusercontrol1_evselectbtn(object sender,eventargs e) {             labeltest.text = "success";         }         protected void page_load(object sender, eventargs e)         {                 datatable dt = new datatable();                 dt.clear();                 dt.columns.add("name");                 dt.columns.add("marks");                 datarow dr = dt.newrow();                 dr[0] = "smith";                 dr[1] = "1";                 dt.rows.add(dr);                                webusercontrol1.dtlookup = dt;                         }         } } 

it looks want send command usercontrol parent page. if have use delegate instead of eventhandler.

add user control

//declare delegates private delegate _sendcommandtoparentcontrol; public delegate sendcommandtoparentcontrol {     set { _sendcommandtoparentcontrol = value; } }  //just button click event handler protected void sendcommandtoparentcontrol_click(object sender, eventargs e) {     //send textbox value parent invoking delegated command     _sendcommandtoparentcontrol.dynamicinvoke(textbox1.text); } 

and in parent page

delegate void commandfromchildcontroldelegate(string value);  protected void page_load(object sender, eventargs e) {     //add command usercontrol     commandfromchildcontroldelegate command = new commandfromchildcontroldelegate(processcommandfromchildcontrol);     webusercontrol1.sendcommandtoparentcontrol = command; }  //the command invoked child control private void processcommandfromchildcontrol(string value) {     label1.text = value; } 

Comments

Popular posts from this blog

sql server - Cannot query correctly (MSSQL - PHP - JSON) -

php - trouble displaying mysqli database results in correct order -

C++ Linked List -