Creating an asp:Button programmatically?
Asked Answered
L

3

7

I'm using my code-behind page to create a save button programmatically:

    Button btnSave = new Button();
    btnSave.ID = "btnSave";
    btnSave.Text = "Save";

However I think this must create an html button or perhaps needs something else as I cannot seem to set the OnClick attribute in the following line, I can specify OnClientClick but this isn't the one I want to set.

Lymphoid answered 9/10, 2008 at 16:14 Comment(0)
S
14
Button btnSave = new Button();    
btnSave.ID = "btnSave";    
btnSave.Text = "Save";  
btnSave.Click += new System.EventHandler(btnSave_Click);

protected void btnSave_Click(object sender, EventArgs e)
{
    //do something when button clicked. 
}
Soho answered 9/10, 2008 at 16:26 Comment(0)
C
9

Also remember that when the user clicks the button it will force a postback, which creates a new instance of your page class. The old instance where you created the button is already gone. You need to make sure that this new instance of the class also adds your button -- and it's event handler -- prior to the load phase, or the event handler won't run (the page's load event still will, however).

Calia answered 9/10, 2008 at 16:31 Comment(0)
T
5

You would be adding a handler to the OnClick using the += syntax if you want to register a handler for the OnClick event in the code behind.

//Add the handler to your button, passing the name of the handling method    
btnSave.Click += new System.EventHandler(btnSave_Click);

protected void btnSave_Click(object sender, EventArgs e)
{
    //Your custom code goes here
}
Thermophone answered 9/10, 2008 at 16:18 Comment(1)
sorry?! I know I'm being thick but that answer made no sense to me, what is a += syntax?Lymphoid

© 2022 - 2024 — McMap. All rights reserved.