在gridview中有“id”列 和一个“操作”列 
“id”列是模板列 里面放了个lable用来取该列的id值;在“操作”模板列中放了三个linkbutton 用来做页面跳转并且都取了commandname 在gridview 的command事件中写跳转的事件。请问大侠们,当我点击 “操作”模板列中的linkbutton时如何取得该行的“id”模板列中lable的值呀 谢谢了!!在线等答案!! 

解决方案 »

  1.   

    CommandArgument传Container.DisplayIndex,
    RowCommand事件处理代里GridView1.Rows[Convert.ToInt32(e.CommandArgument)].FindControl("Label1");大概的这样吧。
      

  2.   


    <asp:TemplateField HeaderText="TemplateField">
         <ItemTemplate>
              <asp:Label ID="Label1" runat="server" Text='<%# Eval("ID") %>' />
        </ItemTemplate>
        </asp:TemplateField>
        <asp:TemplateField HeaderText="TemplateField">
             <ItemTemplate>
                 <asp:LinkButton ID="LinkButton2" runat="server" CommandName="Go" CommandArgument='<%# Container.DisplayIndex %>'>LinkButton</asp:LinkButton>
              </ItemTemplate>
    </asp:TemplateField>
    protected void GridView1_RowCommand(object sender, GridViewCommandEventArgs e)
    {
            if (e.CommandName == "Go") 
            {
                Label label = (Label)GridView1.Rows[Convert.ToInt32(e.CommandArgument)].FindControl("Label1");
                // Label.Text;
            }
    }
      

  3.   

    1. 关于如何去到该行的 GridViewRow 参考(由于不知道你到底用的何种情况)
     ASP.NET DEMO 5:如何在GridView的RowCommand事件中获取当前的GridViewRow
    http://www.cnblogs.com/Jinglecat/archive/2007/07/05/806460.html2. 然后Label lbl = CurrentGridViewRow.FindControl("MyLabelID") as Label;
    if(lbl != null) {
        string id = lbl.Text;
        // .....
    }
      

  4.   

    恩 多谢大家了,真的很感谢!二楼大侠的方法可以实现,三楼大侠的 小弟不才看得不是很懂耶,
    另外问下大家 DisplayIndex 是什么东西呀?我看了帮助 但不是很懂