c# - Delegate not working in asp.net -


i having trouble getting delegate work. want function when user clicks button first time label display driver came in third, second time hit button label clear , driver placed in second display in place , when click button third time display winner of race

this aspx.cs page

using system; using system.collections.generic; using system.linq; using system.web; using system.web.ui; using system.web.ui.webcontrols;  namespace webprogramming3.week_3 {     public partial class exercise1 : system.web.ui.page     {         static raceresult userclick;         //public int clicks = 0;          protected void page_load(object sender, eventargs e)         {             userclick = new raceresult(0);                        userclick.nbrclicksreached += user_click_nbrclicksreached;                      }          private void user_click_nbrclicksreached(string message)         {             lblraceresults.text += message;                    }          protected void btnrace_click(object sender, eventargs e)         {             userclick.btnclicks++;         }     }      public delegate void stringdelegate(string message);      public class raceresult     {         public  int btnclicks { get; set; }          //delegate         public event stringdelegate nbrclicksreached;          public raceresult( int btnclicks)         {             btnclicks = btnclicks;         }          public void add(int amount)         {             if (btnclicks == 1)             {                 if (nbrclicksreached != null)                     nbrclicksreached("in 3rd place kimi räikkönen");             }              if (btnclicks == 2)             {                 if (nbrclicksreached != null)                     nbrclicksreached("in 2nd place sebastian vettel");             }              if (btnclicks >= 3)             {                 if (nbrclicksreached != null)                     nbrclicksreached("in 1st place lewis hamilton");             }         }     } } 

this aspx page

<body>     <form id="form1" runat="server">     <div>         <asp:button id="btnfeed" onclick="btnrace_click" runat="server" text="button" />         <asp:label id="lblraceresults" runat="server" text="label"></asp:label>     </div>     </form> </body> 

if problem unclear please feel free ask more questions.

your code has problems. first of don't protect initialization of global variable in page_load event postbacks. every time run event on server (runat=server) page_load event executed before event declared in control, end reinitializing raceresult variable everytime.
also, static variables not concept in web application, see example question/answer: static vs session

so rewriting of initial part of page is

public partial class exercise1 : system.web.ui.page {     private raceresult userclick;     //public int clicks = 0;      protected void page_load(object sender, eventargs e)     {         // first page load?         if(!ispostback)         {              userclick = new raceresult(0);                        userclick.nbrclicksreached += user_click_nbrclicksreached;              session["userclick"] = userclick;         }         else         {            // first load            userclick = session["userclick"];            if(userclick == null)            {              userclick = new raceresult(0);                        userclick.nbrclicksreached += user_click_nbrclicksreached;              session["userclick"] = userclick;            }         }     } 

now part should call delegate confusing. userclick.add method calls delegate don't call userclick.add anywhere in page code shown. integer passed method not used inside it, seems useless , removed. anyway

protected void btnrace_click(object sender, eventargs e) {     // should not required but....     if(userclick != null)     {         userclick.btnclicks++;         // integer meaningless in context of code above         // removed because add logic driven          // btnclicks value         userclick.add(0);     } } 

Comments

Popular posts from this blog

how to insert data php javascript mysql with multiple array session 2 -

multithreading - Exception in Application constructor -

windows - CertCreateCertificateContext returns CRYPT_E_ASN1_BADTAG / 8009310b -