網上Google了下 查到了有關“asp .net中 button的 onclick事件 與oncommand 事件區別” 的相關資料
加以匯總下。
來自:http://hi.baidu.com/cc2c/blog/item/4d6c1ea426c9acf29152ee72.html的資料如下:
——————————————————————————————————————————————————————————————
onClick
<asp:Button id="Button1" CommandName="踢" CommandArgument="足球" Text="動作1" runat="server" OnClick="Button1_Click" />
public void Button_Click(Object sender,EventArgs e)
{
string argName = ((Button)sender).CommandName;
//sender為一個對象,故CommandArgument為string
string argArg = ((Button)sender).CommandArgument;
Label1.Text="您選中的動作為:<font color=red>"+argName+"</font>,動作目標是:<font color=red>"+argArg+"</font>";
}
<asp:Button id="Button1" CommandName="踢" CommandArgument="足球" Text="動作1" runat="server" OnCommand="Button1_Click" />
public void Button1_Click(Object sender,CommandEventArgs e)
{
string argName = e.CommandName;
//CommandEventArgsr為一個類,故CommandArgument.ToString();
string argArg = e.CommandArgument.ToString();
Label1.Text="您選中的動作為:<font color=red>"+argName+"</font>,動作目標是:<font color=red>"+argArg+"</font>";
}
.類CommandEventArgs有兩個公用屬性,CommandName(用來擷取命令的名稱)和CommandArgument(用來擷取命令的參數)。二者相互關聯。
3.兩個程式分別用OnClick與OnCommand激發事件,區別在於OnCommand是帶值傳遞的。
4.所有Button類的Web控制項(如ImageButton,LinkButton)均含有CommandName和CommandArgument這兩個屬性。
<asp:Button ID="Button1" runar="server" OnClick="Button1_Click" OnCommand="Button1_Command">
同時定義了OnClick和OnCommand,
在代碼中定義相關事件
Button1_Click(object sender,EventArgs e){}
Button1_Command(object sender,CommandEventArgs e){}
1、單擊Button會同時觸發這兩個事件,但先執行Click,後執行Command
2、不同之處
Command可以通過設定CommandName和CommandArgument來區分不同的Button,
可通過包含事件數目據的CommandEventArgs來擷取或設定
而Click中,也可以擷取CommandName和CommandArgument,通過(Button)sender這種形式。
例子:OnClick
<asp:Button ID="Button1" runar="server" OnClick="Button1_Click" CommandName="A" Text="A">
<asp:Button ID="Button2" runar="server" OnClick="Button1_Click" CommandName="B" Text="B">
<asp:Button ID="Button3" runar="server" OnClick="Button1_Click" CommandName="C" Text="C">
定義一個Button1_Click(object sender,EventArgs e){}就夠了,
其它需要用(Button)sender.CommandName來確定是哪一個Button。
換成OnCommand道理一樣,不同之外是用e.CommandName就可以確定。
(在ASP.NET2.0中,事件註冊也可以省略)
3、這兩種方法均為伺服器端事件,如果需要增加用戶端事件,需要通過用Attributes來對Button進行onclick的用戶端事件的設定,如:
Button1.Attributes.Add("onclick","yourfunction();")
同時在JS中定義yourfunction()方法。
4、LinkButton具備相同的特點
——————————————————————————————————————————————————————————————————
來自:http://www.cnblogs.com/xy6521/articles/1352474.html 資料如下:
<asp:Button ID="Button1" runar="server" OnClick="Button1_Click" OnCommand="Button1_Command">
同時定義了OnClick和OnCommand,
在代碼中定義相關事件
Button1_Click(object sender,EventArgs e){}
Button1_Command(object sender,CommandEventArgs e){}
1、單擊Button會同時觸發這兩個事件,但先執行Click,後執行Command
2、不同之處
Command可以通過設定CommandName和CommandArgument來區分不同的Button,
可通過包含事件數目據的CommandEventArgs來擷取或設定
而Click中,也可以擷取CommandName和CommandArgument,通過(Button)sender這種形式。
例子:OnClick
<asp:Button ID="Button1" runar="server" OnClick="Button1_Click" CommandName="A" Text="A">
<asp:Button ID="Button2" runar="server" OnClick="Button1_Click" CommandName="B" Text="B">
<asp:Button ID="Button3" runar="server" OnClick="Button1_Click" CommandName="C" Text="C">
定義一個Button1_Click(object sender,EventArgs e){}就夠了,
其它需要用(Button)sender.CommandName來確定是哪一個Button。
換成OnCommand道理一樣,不同之外是用e.CommandName就可以確定。
(在ASP.NET2.0中,事件註冊也可以省略)
3、這兩種方法均為伺服器端事件,如果需要增加用戶端事件,需要通過用Attributes來對Button進行onclick的用戶端事件的設定,如:
Button1.Attributes.Add("onclick","yourfunction();")
同時可以在aspx頁面中定義yourfunction()方法。