读书人

ASP.NET中Button控件的OnCommand事件与

发布时间: 2012-02-26 20:19:44 作者: rapoo

ASP.NET中Button控件的OnCommand事件与OnClick事件的不同之处?采用其中的任何一个事件执行的效果基本上都是相同的。它们的不同之处是什
ASP.NET中Button控件的OnCommand事件与OnClick事件的不同之处?采用其中的任何一个事件执行的效果基本上都是相同的。它们的不同之处是什么呢?


[解决办法]
msdn上已经说的很清楚了

当单击 Button 控件时会引发 Command 事件。当命令名(如 Sort)与 Button 控件关联时,通常使用该事件。这使您可以在一个网页上创建多个 Button 控件,并以编程方式确定单击了哪个 Button 控件。


看一下他的例子吧:

<%@ Page Language= "C# " AutoEventWireup= "True " %>

<html>
<head>

<script runat= "server ">

void CommandBtn_Click(Object sender, CommandEventArgs e)
{

switch(e.CommandName)
{

case "Sort ":

// Call the method to sort the list.
Sort_List((String)e.CommandArgument);
break;

case "Submit ":

// Display a message for the Submit button being clicked.
Message.Text = "You clicked the <b> Submit </b> button ";

// Test whether the Command Argument is an empty string ( " ").
if((String)e.CommandArgument == " ")
{
// End the message.
Message.Text += ". ";
}
else
{
// Display an error message for the command argument.
Message.Text += ", but the command argument is not recogized. ";
}
break;

default:

// The command name is not recognized. Display an error message.
Message.Text = "Command name not recogized. ";
break;

}

}

void Sort_List(string commandArgument)
{

switch(commandArgument)
{

case "Ascending ":

// Insert code to sort the list in ascending order here.
Message.Text = "You clicked the <b> Sort Ascending </b> button. ";
break;

case "Descending ":

// Insert code to sort the list in descending order here.
Message.Text = "You clicked the <b> Sort Descending </b> button. ";
break;

default:

// The command argument is not recognized. Display an error message.
Message.Text = "Command argument not recogized. ";
break;

}

}

void Page_Load(Object sender, EventArgs e)
{

// Manually register the event-handling method for the Command
// event of the Button controls.
Button1.Command += new CommandEventHandler(this.CommandBtn_Click);
Button2.Command += new CommandEventHandler(this.CommandBtn_Click);
Button3.Command += new CommandEventHandler(this.CommandBtn_Click);
Button4.Command += new CommandEventHandler(this.CommandBtn_Click);
Button5.Command += new CommandEventHandler(this.CommandBtn_Click);

}

</script>

</head>

<body>

<form runat= "server ">

<h3> Button CommandName Example </h3>



Click one of the command buttons.

<br> <br>

<asp:Button id= "Button1 "
Text= "Sort Ascending "
CommandName= "Sort "
CommandArgument= "Ascending "
runat= "server "/>

 

<asp:Button id= "Button2 "
Text= "Sort Descending "
CommandName= "Sort "
CommandArgument= "Descending "
runat= "server "/>

<br> <br>

<asp:Button id= "Button3 "
Text= "Submit "
CommandName= "Submit "
runat= "server "/>

 

<asp:Button id= "Button4 "
Text= "Unknown Command Name "
CommandName= "UnknownName "
CommandArgument= "UnknownArgument "
runat= "server "/>

 

<asp:Button id= "Button5 "
Text= "Submit Unknown Command Argument "
CommandName= "Submit "
CommandArgument= "UnknownArgument "
runat= "server "/>

<br> <br>

<asp:Label id= "Message " runat= "server "/>

</form>

</body>
</html>



[解决办法]
你可以把多个Button绑定到同一个Command上采用不同的Argument来实现不同的功能,这样可以代码重用。Click的话得老实一个一个写了。

读书人网 >asp.net

热点推荐