e.CommandArgument для кнопки asp не работает - PullRequest
20 голосов
/ 15 апреля 2011

Я занимаюсь разработкой приложения asp.net с использованием C #.Я создал страницу .aspx и разместил четыре кнопки в разных местах на странице.На стороне сервера я хочу использовать только одно событие щелчка для всех четырех кнопок.

Вот мой код:

aspx page

<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 page

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

Ответы [ 4 ]

39 голосов
/ 15 апреля 2011

@ Tejs правильно в своем комментарии, похоже, что вы хотите что-то вроде этого:

protected void allbuttons_Click(object sender, EventArgs e)
{
    var argument = ((Button)sender).CommandArgument;
}
9 голосов
/ 15 апреля 2011

Используйте

OnCommand = 

и

protected void allbuttons_Click(object sender, CommandEventArgs e) { }
2 голосов
/ 16 апреля 2011

На самом деле вам вообще не нужно передавать CommandArgument, чтобы узнать, какую кнопку вы нажали. Вы можете получить идентификатор кнопки, как показано ниже:

string id = ((Button)sender).ID;
1 голос
/ 15 апреля 2011

Вы можете назначить командный текст для ваших кнопок следующим образом:

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