網(wǎng)上Google了下 查到了有關(guān)“asp .net中 button的 onclick事件 與oncommand 事件區(qū)別” 的相關(guān)資料
加以匯總下。
來自: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>,動作目標(biāo)是:<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>,動作目標(biāo)是:<font color=red>"+argArg+"</font>";
}
.類CommandEventArgs有兩個公共屬性,CommandName(用來獲取命令的名稱)和CommandArgument(用來獲取命令的參數(shù))。二者相互關(guān)聯(lián)。
3.兩個程序分別用OnClick與OnCommand激發(fā)事件,區(qū)別在于OnCommand是帶值傳遞的。
4.所有Button類的Web控件(如ImageButton,LinkButton)均含有CommandName和CommandArgument這兩個屬性。
<asp:Button ID="Button1" runar="server" OnClick="Button1_Click" OnCommand="Button1_Command">
同時定義了OnClick和OnCommand,
在代碼中定義相關(guān)事件
Button1_Click(object sender,EventArgs e){}
Button1_Command(object sender,CommandEventArgs e){}
1、單擊Button會同時觸發(fā)這兩個事件,但先執(zhí)行Click,后執(zhí)行Command
2、不同之處
Command可以通過設(shè)置CommandName和CommandArgument來區(qū)分不同的Button,
可通過包含事件數(shù)據(jù)的CommandEventArgs來獲取或設(shè)置
而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、這兩種方法均為服務(wù)器端事件,如果需要增加客戶端事件,需要通過用Attributes來對Button進(jìn)行onclick的客戶端事件的設(shè)置,如:
Button1.Attributes.Add("onclick","yourfunction();")
同時在JS中定義yourfunction()方法。
4、LinkButton具備相同的特點(diǎn)
——————————————————————————————————————————————————————————————————
來自:http://www.cnblogs.com/xy6521/articles/1352474.html 資料如下:
<asp:Button ID="Button1" runar="server" OnClick="Button1_Click" OnCommand="Button1_Command">
同時定義了OnClick和OnCommand,
在代碼中定義相關(guān)事件
Button1_Click(object sender,EventArgs e){}
Button1_Command(object sender,CommandEventArgs e){}
1、單擊Button會同時觸發(fā)這兩個事件,但先執(zhí)行Click,后執(zhí)行Command
2、不同之處
Command可以通過設(shè)置CommandName和CommandArgument來區(qū)分不同的Button,
可通過包含事件數(shù)據(jù)的CommandEventArgs來獲取或設(shè)置
而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、這兩種方法均為服務(wù)器端事件,如果需要增加客戶端事件,需要通過用Attributes來對Button進(jìn)行onclick的客戶端事件的設(shè)置,如:
Button1.Attributes.Add("onclick","yourfunction();")
同時可以在aspx頁面中定義yourfunction()方法。