当网页上具有多个Button控件时,多个Button控件又处理单个事件,可以标记按钮,使代码根据窗体上被单击的按钮进行逻辑判断,可以用Button按钮的OnClick事件和OnCommand事件来获取这CommandName和CommandArgument的值。
命令的附加信息可以使用CommandArgument属性来指定,可以用CommandArgument来精确定义需要的参数值
举例如下:
1) 我们在事件OnClick中得到这两个属性的值
protected void btn_Click(object sender, EventArgs e)
{
switch (((Button)sender).CommandName)
{
case "1":
Label1.Text="按钮1激活";
break;
case "2":
Label1.Text="按钮2激活";
break;
case "3":
Label1.Text="按钮3激活";
break;
}
Label2.Text = ((Button)sender).CommandArgument.ToString();
}
<form id="form1" runat="server">
<div>
</div>
<asp:Button ID="btn_1" runat="server" CommandArgument="我选苹果" CommandName="1"
οnclick="btn_Click" oncommand="btn_Command" Text="按钮1" Width="79px" />
<asp:Button ID="Btn_2" runat="server" CommandArgument="我选香蕉" CommandName="2"
οnclick="btn_Click" oncommand="btn_Command" Text="按钮2" Width="65px" />
<asp:Button ID="Btn_3" runat="server" CommandArgument="我选草莓" CommandName="3"
οnclick="btn_Click" oncommand="btn_Command" Text="按钮3" Width="57px" />
<p>
<asp:Label ID="Label1" runat="server" Text="Label"></asp:Label>
</p>
<asp:Label ID="Label2" runat="server" Text="Label"></asp:Label>
</form>
2) 我们在事件OnCommand中得到这两个属性的值
protected void btn_Command(object sender, CommandEventArgs e)
{
switch (e.CommandName)
{
case "1":
Label1.Text="按钮1激活";
break;
case "2":
Label1.Text="按钮2激活";
break;
case "3":
Label1.Text="按钮3激活";
break;
}
Label2.Text = e.CommandArgument.ToString();
}
}
相比较而言,在OnCommand中获取这两个属性值较简单