CommandEventHandler 委托  
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
表示用来处理 Command 事件的方法。
public delegate void CommandEventHandler(System::Object ^ sender, CommandEventArgs ^ e);public delegate void CommandEventHandler(object sender, CommandEventArgs e);type CommandEventHandler = delegate of obj * CommandEventArgs -> unitPublic Delegate Sub CommandEventHandler(sender As Object, e As CommandEventArgs)参数
- sender
- Object
事件源。
包含事件数据的 CommandEventArgs。
示例
下面的示例演示如何为 Command 控件的 Button 事件指定和编码处理程序。 此示例使用 OnClick 控件的 Button 属性以声明方式指定事件处理程序。
<%@ Page Language="C#" AutoEventWireup="True" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
    <title>Button CommandName Example</title>
<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 Submit 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 += ", however 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 Sort Ascending button.";
               break;
            case "Descending":
              
               // Insert code to sort the list in descending order here.
               Message.Text = "You clicked the Sort Descending button.";
               break;
            default:
        
               // The command argument is not recognized. Display an error message.
               Message.Text = "Command argument not recogized.";
               break;
         }
      }
   </script>
</head>
 
<body>
   <form id="form1" runat="server">
      <h3>Button CommandName Example</h3>
      Click on one of the command buttons.
      <br /><br />
 
      <asp:Button id="Button1"
           Text="Sort Ascending"
           CommandName="Sort"
           CommandArgument="Ascending"
           OnCommand="CommandBtn_Click" 
           runat="server"/>
       
      <asp:Button id="Button2"
           Text="Sort Descending"
           CommandName="Sort"
           CommandArgument="Descending"
           OnCommand="CommandBtn_Click" 
           runat="server"/>
      <br /><br />
      <asp:Button id="Button3"
           Text="Submit"
           CommandName="Submit"
           OnCommand="CommandBtn_Click" 
           runat="server"/>
       
      <asp:Button id="Button4"
           Text="Unknown Command Name"
           CommandName="UnknownName"
           CommandArgument="UnknownArgument"
           OnCommand="CommandBtn_Click" 
           runat="server"/>
       
      <asp:Button id="Button5"
           Text="Submit Unknown Command Argument"
           CommandName="Submit"
           CommandArgument="UnknownArgument"
           OnCommand="CommandBtn_Click" 
           runat="server"/>
       
      <br /><br />
      <asp:Label id="Message" runat="server"/>
 
   </form>
 
</body>
</html>
<%@ Page Language="VB" AutoEventWireup="True" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
    <title>Button CommandName Example</title>
<script runat="server">
      Sub CommandBtn_Click(sender As Object, e As CommandEventArgs) 
         Select e.CommandName
            Case "Sort"
               ' Call the method to sort the list.
               Sort_List(CType(e.CommandArgument, String))
            Case "Submit"
               ' Display a message for the Submit button being clicked.
               Message.Text = "You clicked the Submit button"
               ' Test whether the command argument is an empty string ("").
               If CType(e.CommandArgument , String) = "" Then
              
                  ' End the message.
                  Message.Text &= "."
               
               Else
               
                  ' Display an error message for the command argument. 
                  Message.Text &= ", however the command argument is not recogized."
               
               End If                
            Case Else
               ' The command name is not recognized. Display an error message.
               Message.Text = "Command name not recogized."
         End Select
      End Sub
      Sub Sort_List(commandArgument As String)
         Select commandArgument
            Case "Ascending"
 
               ' Insert code to sort the list in ascending order here.
               Message.Text = "You clicked the Sort Ascending button."
            Case "Descending"
              
               ' Insert code to sort the list in descending order here.
               Message.Text = "You clicked the Sort Descending button."
            Case Else
        
               ' The command argument is not recognized. Display an error message.
               Message.Text = "Command argument not recogized."
         End Select
      End Sub
   </script>
</head>
 
<body>
   <form id="form1" runat="server">
      <h3>Button CommandName Example</h3>
      Click on one of the command buttons.
      <br /><br />
 
      <asp:Button id="Button1"
           Text="Sort Ascending"
           CommandName="Sort"
           CommandArgument="Ascending"
           OnCommand="CommandBtn_Click" 
           runat="server"/>
       
      <asp:Button id="Button2"
           Text="Sort Descending"
           CommandName="Sort"
           CommandArgument="Descending"
           OnCommand="CommandBtn_Click" 
           runat="server"/>
      <br /><br />
      <asp:Button id="Button3"
           Text="Submit"
           CommandName="Submit"
           OnCommand="CommandBtn_Click" 
           runat="server"/>
       
      <asp:Button id="Button4"
           Text="Unknown Command Name"
           CommandName="UnknownName"
           CommandArgument="UnknownArgument"
           OnCommand="CommandBtn_Click" 
           runat="server"/>
       
      <asp:Button id="Button5"
           Text="Submit Unknown Command Argument"
           CommandName="Submit"
           CommandArgument="UnknownArgument"
           OnCommand="CommandBtn_Click" 
           runat="server"/>
       
      <br /><br />
      <asp:Label id="Message" runat="server"/>
 
   </form>
 
</body>
</html>
下面的代码示例演示如何指定 事件处理程序,以及如何以编程方式将其添加到 方法中的 Page_Load 事件。
<%@ Page Language="C#" AutoEventWireup="True" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
    <title>Button CommandName Example</title>
<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 id="form1" 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>
<%@ Page Language="VB" AutoEventWireup="True" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
    <title>Button CommandName Example</title>
<script runat="server">
      Sub CommandBtn_Click(sender As Object, e As CommandEventArgs) 
         Select e.CommandName
            Case "Sort"
               ' Call the method to sort the list.
               Sort_List(CType(e.CommandArgument, String))
            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 CType(e.CommandArgument , String) = "" Then
              
                  ' End the message.
                  Message.Text &= "."
               
               Else
               
                  ' Display an error message for the command argument. 
                  Message.Text &= ", but the command argument is not recogized."
               
               End If                
            Case Else
               ' The command name is not recognized. Display an error message.
               Message.Text = "Command name not recogized."
         End Select
      End Sub
      Sub Sort_List(commandArgument As String)
         Select commandArgument
            Case "Ascending"
 
               ' Insert code to sort the list in ascending order here.
               Message.Text = "You clicked the <b>Sort Ascending</b> button."
            Case "Descending"
              
               ' Insert code to sort the list in descending order here.
               Message.Text = "You clicked the <b>Sort Descending</b> button."
            Case Else
        
               ' The command argument is not recognized. Display an error message.
               Message.Text = "Command argument not recogized."
         End Select
      End Sub
      Sub Page_Load(sender As Object, e As EventArgs)
         ' Manually register the event-handling method for the Command  
         ' event of the Button controls.
         AddHandler Button1.Command, AddressOf CommandBtn_Click
         AddHandler Button2.Command, AddressOf CommandBtn_Click
         AddHandler Button3.Command, AddressOf CommandBtn_Click
         AddHandler Button4.Command, AddressOf CommandBtn_Click
         AddHandler Button5.Command, AddressOf CommandBtn_Click
      End Sub
   </script>
</head>
 
<body>
   <form id="form1" 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>
注解
单击 Command 、 ImageButton或 LinkButton 控件时Button引发 事件。
创建 CommandEventHandler 委托时,需要标识将处理该事件的方法。 若要将事件与事件处理程序关联,请将该委托的一个实例添加到事件中。 除非移除了该委托,否则每当发生该事件时就会调用事件处理程序。 有关事件处理程序委托的详细信息,请参阅 处理和引发事件。
扩展方法
| GetMethodInfo(Delegate) | 获取指示指定委托表示的方法的对象。 |