Question

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.

Was it helpful?

Solution

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

OTHER TIPS

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

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
}
Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top