我已經看到一些代碼,其中人們通過web控件的commandParameter屬性傳遞參數,然後使用eventargs。asp.net:如何使用eventargs參數傳遞on button onclick?
21
A
回答
50
如果您針對不同的按鈕具有相同的EventHandler方法,這會很有用。例如,假設您的標記看起來像這樣:
<asp:Button ID="button1" runat="server" CommandArgument="MyVal1"
CommandName="ThisBtnClick" OnClick="MyBtnHandler" />
<asp:Button ID="button2" runat="server" CommandArgument="MyVal2"
CommandName="ThatBtnClick" OnClick="MyBtnHandler" />
可以具有相同的事件處理程序按鈕並基於該CommandName的區分:
protected void MyBtnHandler(Object sender, EventArgs e)
{
Button btn = (Button)sender;
switch (btn.CommandName)
{
case "ThisBtnClick":
DoWhatever(btn.CommandArgument.ToString());
break;
case "ThatBtnClick":
DoSomethingElse(btn.CommandArgument.ToString());
break;
}
}
+0
鏈接不再工作 – madman2890 2013-03-13 20:08:56
5
.NET中的各種按鈕類型控件有一個OnCommand
事件以及一個OnClick
事件。當使用OnCommand
事件時,您可以將其他參數應用於按鈕,如CommandName
和CommandArgument
。這些可以在CommandEventArgs
中訪問。
在您想要爲多個按鈕分配相同方法的地方以及使用參數CommandName
和CommandArgument
指示單擊該按鈕的功能將生成哪些功能時,它非常有用。
5
的EventArgs
類是基類。其他Web方法使用其他事件參數。
例如LinkButton具有帶默認EventArgs參數的OnClick事件,但它也有一個OnCommand事件,該事件需要具有一些額外信息的CommandEventArgs : EventArgs
參數(即CommandName & CommandArgument)。
事件參數基類只是作爲一個佔位符,所以所有的EventHandlers符合類似的簽名。
可能的重複[可以請大家向我解釋如何使用EventArgs?](http://stackoverflow.com/questions/1778952/can-someone-please-explain-to-me-in最通俗的術語how-to-use-eventargs) – Toadfish 2016-04-17 08:14:26