當網頁上具有多個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"
onclick="btn_Click" oncommand="btn_Command" Text="按鈕1" Width="79px" />
<asp:Button ID="Btn_2" runat="server" CommandArgument="我選香蕉" CommandName="2"
onclick="btn_Click" oncommand="btn_Command" Text="按鈕2" Width="65px" />
<asp:Button ID="Btn_3" runat="server" CommandArgument="我選草莓" CommandName="3"
onclick="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中獲取這兩個屬性值較簡單