如何解决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 举报,一经查实,本站将立刻删除。