页面上很多按钮,实现的功能基本差不多.我现在想把这些事件统一用一个事件来处理,就像GridView的ItemCommand一样可以通过e.CommandName来取到不同按钮的CommandName,根据不同的CommandName来实现不同的代码。但现在问题是button的Click时间没有e.CommandName这个属性..我的想法能实现吗?

解决方案 »

  1.   

    当在网页上具有多个 Button 控件时,可使用 CommandName 属性来指定或确定与每一 Button 控件关联的命令名。可以用标识要执行的命令的任何字符串来设置 CommandName 属性。然后,可以以编程方式确定 Button 控件的命令名并执行相应的操作。有关命令的附加信息(如 Ascending)可以使用 CommandArgument 属性来指定。无法通过主题或样式表主题设置此属性。有关更多信息,请参见 ThemeableAttribute 和 ASP.NET 主题和外观概述。示例下面的代码示例演示如何使用 CommandName 属性来创建对列表进行排序的 Button 控件。Visual Basic
    <%@ 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  >
    <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"/>      &nbsp;      <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"/>      &nbsp;      <asp:Button id="Button4"
               Text="Unknown Command Name"
               CommandName="UnknownName"
               CommandArgument="UnknownArgument"
               OnCommand="CommandBtn_Click" 
               runat="server"/>      &nbsp;      <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>
    C#
    <%@ 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  >
    <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"/>      &nbsp;      <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"/>      &nbsp;      <asp:Button id="Button4"
               Text="Unknown Command Name"
               CommandName="UnknownName"
               CommandArgument="UnknownArgument"
               OnCommand="CommandBtn_Click" 
               runat="server"/>      &nbsp;      <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>
      

  2.   

    你可以这样做        private void InitializeComponent()
            {
                this.button1 = new System.Windows.Forms.Button();
                this.button2 = new System.Windows.Forms.Button();
                this.button1.Click += new System.EventHandler(this.button_Click);
                this.button2.Click += new System.EventHandler(this.button_Click);
            }        private void button_Click(object sender, EventArgs e)
            {
                if(sender is System.Windows.Forms.Button)
                {
                    switch (((System.Windows.Forms.Button)sender).Name)
                    {
                        case "button1":
                                 ....
                        case "button2":
                                 ....
                    }
                }
      

  3.   

    不好意思搞错了,写的WinForm上的代码了
      

  4.   

    按godgreat的写法
     protected void bxsp_Click(object sender, CommandEventArgs e)
    结果运行的时候报错:
    错误 5 “bxsp_Click”的重载均与委托“System.EventHandler”不匹配
      

  5.   

    举个例子, button1的click方法名是button1_click
    那么button2的方法你上加上button1_click,在控件方法窗口(那个闪电图标)的click填上button1_click就行了.
      

  6.   

    上面的方法我知道现在不是关联不了,而是我不知道怎么通过 CommandName来实现不同的按钮 实现不同的功能
      

  7.   

    用command事件,click事件是实现不了你要的效果的。