|
code
newsgroups
|
|||||||||||||||||||||||
|
|||||||||||||||||||||||
Button Click event not firingwhen testButton is clicked. This Button and a Label are the only controls on a Web UserControl which is loaded and displayed in the main document. When the button is clicked, a postback occurs and the Page events get called, but not the Button Click event. public class LoginControl : System.Web.UI.UserControl { protected System.Web.UI.WebControls.Label Label1; protected System.Web.UI.WebControls.Button testButton; private bool loggedIn = false; private void Page_Load(object sender, System.EventArgs e) { // Put user code to initialize the page here if (Session["LoggedIn"] != null) { loggedIn = (bool)Session["LoggedIn"]; } } private void testButton_Click(object sender, System.EventArgs e) { // this event handler is never called! loggedIn = true; } private void Page_PreRender(object sender, System.EventArgs e) { defaultWebForm defaultPage = (defaultWebForm)Context.Handler; // Method to switch the menu between "Log In" and "Log Out". defaultPage.ShowLoggedIn(loggedIn); } private void Page_Unload(object sender, System.EventArgs e) { Session["LoggedIn"] = loggedIn; } } In the InitializeComponent method, the event is wired... this.testButton.Click += new System.EventHandler(this.testButton_Click); Can anyone please tell me why? Im not too familiar with C# or its dynamic allocation of handlers.
However. if you dont need to set the handlers dynamically, you might want to just try setting the handler via buttons 'onClick' property <asp:Button id="testButton" Text="Submit" onclick="testButton_Click" runat="server" /> I know you said the event is wired in the InitializeComponent but you might
want to double check and make sure you haven't lost the binding. Show quoteHide quote "carentrica" wrote: > For some reason, my "testButton_Click()" event handler is not being called > when testButton is clicked. > This Button and a Label are the only controls on a Web UserControl which is > loaded and displayed in the main document. When the button is clicked, a > postback occurs and the Page events get called, but not the Button Click > event. > > public class LoginControl : System.Web.UI.UserControl > { > protected System.Web.UI.WebControls.Label Label1; > protected System.Web.UI.WebControls.Button testButton; > private bool loggedIn = false; > > private void Page_Load(object sender, System.EventArgs e) > { > // Put user code to initialize the page here > if (Session["LoggedIn"] != null) { > loggedIn = (bool)Session["LoggedIn"]; > } > } > > private void testButton_Click(object sender, System.EventArgs e) { > // this event handler is never called! > loggedIn = true; > } > > private void Page_PreRender(object sender, System.EventArgs e) { > defaultWebForm defaultPage = (defaultWebForm)Context.Handler; > // Method to switch the menu between "Log In" and "Log Out". > defaultPage.ShowLoggedIn(loggedIn); > } > > private void Page_Unload(object sender, System.EventArgs e) { > Session["LoggedIn"] = loggedIn; > } > } > > In the InitializeComponent method, the event is wired... > > this.testButton.Click += new > System.EventHandler(this.testButton_Click); > > Can anyone please tell me why? > I think I've found the problem, guys. It seems to be something to do with the
order in which events fire. The Page Load event fires before the Control events and my logic was reloading the Control each time instead of testing that the QueryString didn't contain the value that would load the control. I've just re-written all the relevant logic and things appear to working as expected. Many thanks for all your replies. Show quoteHide quote "dbottjer" wrote: > I know you said the event is wired in the InitializeComponent but you might > want to double check and make sure you haven't lost the binding. > > "carentrica" wrote: > > > For some reason, my "testButton_Click()" event handler is not being called > > when testButton is clicked. > > This Button and a Label are the only controls on a Web UserControl which is > > loaded and displayed in the main document. When the button is clicked, a > > postback occurs and the Page events get called, but not the Button Click > > event. > > > > public class LoginControl : System.Web.UI.UserControl > > { > > protected System.Web.UI.WebControls.Label Label1; > > protected System.Web.UI.WebControls.Button testButton; > > private bool loggedIn = false; > > > > private void Page_Load(object sender, System.EventArgs e) > > { > > // Put user code to initialize the page here > > if (Session["LoggedIn"] != null) { > > loggedIn = (bool)Session["LoggedIn"]; > > } > > } > > > > private void testButton_Click(object sender, System.EventArgs e) { > > // this event handler is never called! > > loggedIn = true; > > } > > > > private void Page_PreRender(object sender, System.EventArgs e) { > > defaultWebForm defaultPage = (defaultWebForm)Context.Handler; > > // Method to switch the menu between "Log In" and "Log Out". > > defaultPage.ShowLoggedIn(loggedIn); > > } > > > > private void Page_Unload(object sender, System.EventArgs e) { > > Session["LoggedIn"] = loggedIn; > > } > > } > > > > In the InitializeComponent method, the event is wired... > > > > this.testButton.Click += new > > System.EventHandler(this.testButton_Click); > > > > Can anyone please tell me why? > >
Bound dropdownlist in .NET 2.0 -- picking the selected value?
masterpages: body event handler <customErrors mode="Off"/> ERROR How to reference the masterpage body element in server code master-pages: naming problem for client-side scripting Repeater.Itemcommand not firing referencing and anchor from within a usercontrol (ascx) referencing and anchor from within a usercontrol (ascx) Custom type converter How to filter file types when using the HTMLInputFile control... |
|||||||||||||||||||||||