Button控件里面的OnCommand属性和OnClick属性,有什么区别?
请举一下例子!

解决方案 »

  1.   

    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 "/>             &nbsp;             <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 "/>             &nbsp;             <asp:Button   id= "Button4 " 
                          Text= "Unknown   Command   Name " 
                          CommandName= "UnknownName " 
                          CommandArgument= "UnknownArgument " 
                          runat= "server "/>             &nbsp;             <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的话得老实一个一个写了。