CommandName属性简介
3.5.2 ?CommandName屬性
?
可以讓窗體上的多個(gè)按鈕來處理一個(gè)事件。我們可以標(biāo)記按鈕,使代碼能根據(jù)窗體上單擊的按鈕進(jìn)行邏輯判斷。必須按照程序清單3-6給出的方式構(gòu)建Button控件,這樣才能利用多個(gè)按鈕處理一個(gè)事件。
?
程序清單3-6 ?構(gòu)建多個(gè)Button控件來處理一個(gè)函數(shù)
?
<asp:Button ID="Button1" runat="server" Text="Button 1"?
?OnCommand="Button_Command" CommandName="DoSomething1" />?
<asp:Button ID="Button2" runat="server" Text="Button 2"?
?OnCommand="Button_Command" CommandName="DoSomething2" />?
下面查看Button控件的這兩個(gè)實(shí)例,需要注意幾個(gè)地方。首先要注意的是哪個(gè)元素不存在,即具有OnClick事件的屬性。相反,這里使用的是OnCommand事件,它指向Button_Command事件。這兩個(gè)Button控件處理同一個(gè)事件。事件應(yīng)該如何確定單擊哪個(gè)按鈕呢?可以通過CommandName屬性的值來確定這一點(diǎn)。在這個(gè)例子中,它們擁有不同的值-- DoSomething1和DoSomething2。
?
下一步是創(chuàng)建這兩個(gè)按鈕要處理的Button_Command事件,方法是輸入一個(gè)事件,或者在Visual Studio的代碼視圖中,從Button控件的可用事件下拉列表中選擇Command事件。無論采用什么方法,都會(huì)得到如程序清單3-7所示的事件。
?
程序清單3-7 ?Button_Command事件
?
VB ?
Protected Sub Button_Command(ByVal sender As Object, ?
? ByVal e As System.Web.UI.WebControls.CommandEventArgs) ?
? ? ? ? ??
? ?Select Case e.CommandName ?
? ? ? Case "DoSomething1" ?
? ? ? ? ?Response.Write("Button 1 was selected") ?
? ? ? Case "DoSomething2" ?
? ? ? ? ?Response.Write("Button 2 was selected") ?
? ?End Select ? ? ?
End Sub ?
C# ?
protected void Button_Command(Object sender, ?
? ?System.Web.UI.WebControls.CommandEventArgs e) ?
{ ?
? ?switch (e.CommandName) ?
? ?{ ?
? ? ? case("DoSomething1"): ?
? ? ? ? ?Response.Write("Button 1 was selected"); ?
? ? ? ? ?break; ?
? ? ? case("DoSomething2"): ?
? ? ? ? ?Response.Write("Button 2 was selected"); ?
? ? ? ? ?break; ?
? ?} ?
}?
注意,這個(gè)方法使用的是System.Web.UI.WebControls.CommandEventArgs,而不是常用的System. EventArgs,以便把Select Case(switch)語句中使用的成員CommandName作為e.CommandName來訪問。使用這個(gè)對(duì)象,可以檢查窗體上被單擊按鈕使用的Command Name屬性值,并根據(jù)該值執(zhí)行特定的操作。
?
除了CommandName屬性中定義的內(nèi)容之外,還可以在Command事件中添加要傳入的參數(shù)。為此,可以使用Button控件的CommandArgument屬性。給屬性添加值可以更精細(xì)地定義需要的項(xiàng)。在服務(wù)器端代碼中使用CommandEventArgs對(duì)象中的e.CommandArgument,就可以獲得這個(gè)值。
總結(jié)
以上是生活随笔為你收集整理的CommandName属性简介的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: JAVA连接SQL server2000
- 下一篇: Threejs实现天空盒,全景场景,地面