问题
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.
回答1:
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.
}
回答2:
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).
回答3:
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
}
来源:https://stackoverflow.com/questions/188007/creating-an-aspbutton-programmatically