2008-10-09 28 views
7

estoy usando mi página de código subyacente para crear un botón de guardar mediante programación:Crear un botón asp: programmatically?

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

Sin embargo creo que esto debe crear un botón HTML o tal vez necesita algo más, ya que parece que no puede establecer el atributo onclick en el En la siguiente línea, puedo especificar OnClientClick pero este no es el que quiero establecer.

Respuesta

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

eso es genial gracias Erikk –

5

Agregaría un controlador al OnClick con la sintaxis + = si desea registrar un controlador para el evento OnClick en el código subyacente.

//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 
} 
+0

lo siento ?! Sé que estoy siendo grosero, pero esa respuesta no tiene sentido para mí, ¿qué es una sintaxis + =? –

+0

Eche un vistazo a la respuesta de Erikk que muestra muy bien. –

+0

¡Acabo de editar para agregar una muestra aquí también! –

8

Asimismo, recuerda que cuando el usuario hace clic en el botón que obligará a una devolución de datos, lo que crea una nueva instancia de su clase de página. La instancia anterior donde creó el botón ya se ha ido. Debe asegurarse de que esta nueva instancia de la clase también agregue su botón - y su manejador de eventos - antes de la fase de carga, o el controlador de eventos no se ejecutará (sin embargo, el evento de carga de la página todavía lo hará) .

+0

¡Excelente punto! –

Cuestiones relacionadas