GridView中为按钮添加相应的事件

今天看一个兄弟在CSDN上发了一个帖子,问在GridView中为一个按钮加一个事件,其实就是让一个panel显示出来的问题。
个人认为这个问题的主要在于GridView中为一个按钮添加事件,并把相应的ID给它,只要有ID值了。省下的事就好办多了。
下面是我做的一个小测试。功能简单,代码如下,在VS2008下测试通过.net2.0
前台:

  1. <asp:GridView ID="GridView1" runat="server" Height="174px" Width="355px" 
  2.         onrowcommand="GridView1_RowCommand" 
  3.         onrowdatabound="GridView1_RowDataBound">
  4.     <Columns>
  5.         <asp:TemplateField ShowHeader="False">
  6.             <ItemTemplate>
  7.                 <asp:Button ID="Button1" runat="server" CausesValidation="false" 
  8.                     CommandName="view" CommandArgument='<%# Eval("ID")%>' onclick="Button1_Click1" Text="点击" />
  9.             </ItemTemplate>
  10.         </asp:TemplateField>
  11.     </Columns>
  12.         
  13.     </asp:GridView>
  14.     <asp:Panel ID="Panel1" Visible="false" runat="server" Height="76px" Visible="False">
  15.         <asp:Label ID="Label2" runat="server"></asp:Label>
  16.     </asp:Panel>
后台代码:
  1.  protected void Page_Load(object sender, EventArgs e)
  2.         {
  3.             this.Label1.Text = "aaaaaaa";
  4.             if (!Page.IsPostBack)
  5.             {
  6.                 getListBox();
  7.             }
  8.         }
  9.         public void getListBox()
  10.         {
  11.             DataTable dt = new DataTable();
  12.             DataColumn dc = new DataColumn();
  13.             dc.ColumnName = "ID";
  14.             dt.Columns.Add(dc);
  15.             DataColumn dc2 = new DataColumn();
  16.             dc2.ColumnName = "Name";
  17.             dt.Columns.Add(dc2);
  18.             DataRow dr;
  19.             for (int i = 0; i <= 5; i++)
  20.             {
  21.                 dr = dt.NewRow();
  22.                 dr["ID"] = i + 1;
  23.                 dr["Name"] = "Name" + i;
  24.                 dt.Rows.Add(dr);
  25.             }
  26.             this.GridView1.DataSource = dt;
  27.             this.GridView1.DataKeyNames = new string[] {"ID"};
  28.             this.GridView1.DataBind();
  29.         }
  30.         
  31.         protected void Button1_Click1(object sender, EventArgs e)
  32.         {
  33.             string Tempstr = ((Button)sender).CommandArgument.ToString();
  34.             //Response.Write("<script>alert('"+Tempstr+"');</script>");
  35.             //这里我让Panel显示出来,并把相应的ID给label。知道了ID你就可惟做很多事了
  36.             this.Panel1.Visible = true;
  37.             this.Label2.Text = Tempstr;
  38.         }

你可能感兴趣的:(.net,server,测试,asp,button)