asp.net按鈕 button的onclick事件 與oncommand 事件的區別 匯總

來源:互聯網
上載者:User

網上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()方法。

 

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.