今天看一个兄弟在优快云上发了一个帖子,问在GridView中为一个按钮加一个事件,其实就是让一个panel显示出来的问题。
个人认为这个问题的主要在于GridView中为一个按钮添加事件,并把相应的ID给它,只要有ID值了。省下的事就好办多了。
下面是我做的一个小测试。功能简单,代码如下,在VS2008下测试通过.net2.0
前台:
后台代码:
个人认为这个问题的主要在于GridView中为一个按钮添加事件,并把相应的ID给它,只要有ID值了。省下的事就好办多了。
下面是我做的一个小测试。功能简单,代码如下,在VS2008下测试通过.net2.0
前台:
- <asp:GridView ID="GridView1" runat="server" Height="174px" Width="355px"
- onrowcommand="GridView1_RowCommand"
- onrowdatabound="GridView1_RowDataBound">
- <Columns>
- <asp:TemplateField ShowHeader="False">
- <ItemTemplate>
- <asp:Button ID="Button1" runat="server" CausesValidation="false"
- CommandName="view" CommandArgument='<%# Eval("ID")%>' onclick="Button1_Click1" Text="点击" />
- </ItemTemplate>
- </asp:TemplateField>
- </Columns>
- </asp:GridView>
- <asp:Panel ID="Panel1" Visible="false" runat="server" Height="76px" Visible="False">
- <asp:Label ID="Label2" runat="server"></asp:Label>
- </asp:Panel>
- protected void Page_Load(object sender, EventArgs e)
- {
- this.Label1.Text = "aaaaaaa";
- if (!Page.IsPostBack)
- {
- getListBox();
- }
- }
- public void getListBox()
- {
- DataTable dt = new DataTable();
- DataColumn dc = new DataColumn();
- dc.ColumnName = "ID";
- dt.Columns.Add(dc);
- DataColumn dc2 = new DataColumn();
- dc2.ColumnName = "Name";
- dt.Columns.Add(dc2);
- DataRow dr;
- for (int i = 0; i <= 5; i++)
- {
- dr = dt.NewRow();
- dr["ID"] = i + 1;
- dr["Name"] = "Name" + i;
- dt.Rows.Add(dr);
- }
- this.GridView1.DataSource = dt;
- this.GridView1.DataKeyNames = new string[] {"ID"};
- this.GridView1.DataBind();
- }
- protected void Button1_Click1(object sender, EventArgs e)
- {
- string Tempstr = ((Button)sender).CommandArgument.ToString();
- //Response.Write("<script>alert('"+Tempstr+"');</script>");
- //这里我让Panel显示出来,并把相应的ID给label。知道了ID你就可惟做很多事了
- this.Panel1.Visible = true;
- this.Label2.Text = Tempstr;
- }