Button Click event not firing

C

carentrica

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?
 
J

Jeff

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" />
 
D

dbottjer

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.
 
C

carentrica

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.

dbottjer said:
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 said:
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?
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

No members online now.

Forum statistics

Threads
473,744
Messages
2,569,484
Members
44,903
Latest member
orderPeak8CBDGummies

Latest Threads

Top