微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

e.asp按钮的CommandArgument不起作用

如何解决e.asp按钮的CommandArgument不起作用

| 我正在使用C#开发asp.net应用程序。 我创建了一个.aspx页面,并在页面的不同位置放置了四个按钮。 在服务器端,我只希望对所有四个按钮使用一次单击事件。 这是我的代码: 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\" />
CS页面
protected void allbuttons_Click(object sender,EventArgs e)
{
    //Here i want to kNow which button is pressed
    //e.CommandArgument gives an error
}
    

解决方法

@Tejs在他的评论中是正确的,看起来您想要这样的东西:
protected void allbuttons_Click(object sender,EventArgs e)
{
    var argument = ((Button)sender).CommandArgument;
}
    ,采用
OnCommand = 
protected void allbuttons_Click(object sender,CommandEventArgs e) { }
    ,实际上,您根本不需要传递CommandArgument即可知道您按下了哪个按钮。您可以获取按钮的ID,如下所示:
string id = ((Button)sender).ID;
    ,您可以按如下所示将命令文本分配给按钮:
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;
    }
}
    

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。