2011-04-15 18 views
17

Estoy desarrollando una aplicación asp.net utilizando C#. Creé una página .aspx y coloqué cuatro botones en diferentes ubicaciones de la página. En el lado del servidor, quiero usar solo un evento de clic para los cuatro botones.e.CommandArgument para el botón asp no funciona

Aquí está mi código:

aspx página

<asp:Button ID="Button1" runat="server" CommandArgument="Button1" onClick = "allbuttons_Click" /> 
<asp:Button ID="Button2" runat="server" CommandArgument="Button2" onClick = "allbuttons_Click" /> 
<asp:Button ID="Button3" runat="server" CommandArgument="Button3" onClick = "allbuttons_Click" /> 
<asp:Button ID="Button4" runat="server" CommandArgument="Button4" onClick = "allbuttons_Click" /> 

cs

protected void allbuttons_Click(object sender, EventArgs e) 
{ 
    //Here i want to know which button is pressed 
    //e.CommandArgument gives an error 
} 
+1

'e.CommandArgument' no tiene sentido ... ¿estás seguro de que no se está refiriendo a' (remitente como botón) .CommandArgument'? – Tejs

+0

Solo quiero saber qué botón se presiona. Quiero obtener argumentos de comando para el botón que se presiona. –

Respuesta

35

@Tejs tiene razón en su comentario, parece que quieres algo como esto:

protected void allbuttons_Click(object sender, EventArgs e) 
{ 
    var argument = ((Button)sender).CommandArgument; 
} 
8

Uso

OnCommand = 

y

protected void allbuttons_Click(object sender, CommandEventArgs e) { } 
1

Puede asignar comandos de texto a los botones de la siguiente manera:

protected void allbuttons_Click(Object sender, CommandEventArgs e) { 
    switch(e.CommandName) { 
     case "Button1": 
      Message.Text = "You clicked the First button"; 
      break; 
     case "Button2": 
      Message.Text = "You clicked the Second button"; 
      break; 
     case "Button3": 
      Message.Text = "You clicked Third button"; 
      break; 
     case "Button4": 
      Message.Text ="You clicked Fourth button"; 
      break; 
    } 
} 
2

En realidad, usted no necesita pasar el CommandArgument en absoluto saber qué botón presionaste Puede obtener el ID del botón, como a continuación:

string id = ((Button)sender).ID; 
Cuestiones relacionadas