asp.net commandargument aspbutton

asp.net - e.CommandArgument for asp button no funciona



aspbutton (4)

Estoy desarrollando una aplicación asp.net usando 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.

Aquí está mi código:

página aspx

<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" />

página cs

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


@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; }


En realidad, no es necesario que pase el documento de comando para saber qué botón presionó. Puede obtener la ID del botón como a continuación:

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


Puede asignar texto de comando a sus 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; } }


Utilizar

OnCommand =

y

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