tags:

views:

1031

answers:

3

Hi,

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

    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.

I know I've probaby missed something obvious, any help would be much appreciated.

+4  A: 

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
}
Mitchel Sellers
sorry?!I know I'm being thick but that answer made no sense to me, what is a += syntax?
Jay Wilde
Have a look at Erikk's answer which nicely shows.
Mudu
I just edited to add a sample here as well!
Mitchel Sellers
+9  A: 
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. 
}
Erikk Ross
that's great thanks Erikk
Jay Wilde
+5  A: 

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

Joel Coehoorn
Excellent point!
Erikk Ross