<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False"  DataKeyNames="ID">
        <Columns>
            <asp:TemplateField>
                <ItemTemplate>
                    <asp:CheckBox ID="CheckBox1" runat="server" Checked="true" />
                </ItemTemplate>
            </asp:TemplateField>
            <asp:BoundField DataField="ID" HeaderText="编号" />
            <asp:BoundField DataField="Name" HeaderText="姓名" />
        </Columns>
</asp:GridView>CS页面:        protected void Button1_Click(object sender, EventArgs e)
        {
            for (int i = 0; i < this.GridView1.Rows.Count; i++)
            {
                if (((CheckBox)this.GridView1.Rows[i].FindControl("CheckBox1")).Checked == true)
                {
                    这里怎么获取GridView1里的Name值???????
                }
            }
        }

解决方案 »

  1.   

    看看你的Name绑定在哪个控件上了,例如绑定在Label上:protected void Button1_Click(object sender, EventArgs e)
      {
      for (int i = 0; i < this.GridView1.Rows.Count; i++)
      {
      if (((CheckBox)this.GridView1.Rows[i].FindControl("CheckBox1")).Checked == true)
      {
      Label l = this.GridView1.Rows[i].FindControl("Label1") as Label;
    string name = l.Text;
      }
      }
      }
      

  2.   

    在就是绑定的时候给控件的commandargument绑定name
    取的时候:
    protected void Button1_Click(object sender, EventArgs e)
      {
      for (int i = 0; i < this.GridView1.Rows.Count; i++)
      {
      if (((CheckBox)this.GridView1.Rows[i].FindControl("CheckBox1")).Checked == true)
      {
      string name=  e.commandargument.ToString();
      }
      }
      }
      

  3.   

                SqlConnection cn = new SqlConnection(strConn);
                cn.Open();
                for (int i = 0; i < this.GridView1.Rows.Count; i++)
                {
                    if (((CheckBox)this.GridView1.Rows[i].FindControl("CheckBox1")).Checked == true)
                    {
                        string pid = this.GridView1.DataKeys[i].Value.ToString();
                        Label l = this.GridView1.Rows[i].FindControl("Label1") as Label;
                        string name = l.Text;   //这里获取到的是空值。
                        string Txt = this.TxtNR.Text.ToString(); 
                        string Fjia = ""; 
                        string Xian = "5";
                        int result = EUCPComm.SendSMSEx(SerialNumber.Key(), name, Txt, Fjia, Xian);
                        if (result == 1)
                        {
                            
                        }
                        else
                        {
                           
                        }                }
                }
                cn.Close();
                Data(0);
      

  4.   

    <Columns>
                <asp:TemplateField>
                    <ItemTemplate>
                        <asp:CheckBox ID="CheckBox1" runat="server" Checked="true" />
                    </ItemTemplate>
                </asp:TemplateField>
                <asp:TemplateField HeaderText="号码">
                    <ItemTemplate>
                        <asp:Label ID="Label1" runat="server" Text='<%#Eval("PhoneNumber")%>'></asp:Label>
                    </ItemTemplate>
                </asp:TemplateField>
                <asp:BoundField DataField="PhoneNumber" HeaderText="手机号" NullDisplayText="无" />
                <asp:BoundField DataField="MassPostTimes" HeaderText="批次" />
                <asp:BoundField DataField="IsPost" HeaderText="是否发送" />
                <asp:BoundField DataField="AddTime" HeaderText="增加时间" />
            </Columns>
      

  5.   

    在Gridview里面放模板列吧!
    <asp:GridView ID="a_list" runat="server" CssClass="list-table" AutoGenerateColumns="False" HeaderStyle-CssClass="list-tabletitle">
        <Columns>
             <asp:TemplateField HeaderText="订单号">
                <ItemTemplate>
    <asp:Literal ID="a_dingdan"  runat="server" Text='<%# Trim(DataBinder.Eval(Container, "DataItem.a_dingdan")) %>'></asp:Literal>
              </ItemTemplate>            
            </asp:TemplateField>
            
        <asp:TemplateField HeaderText="是否锁定">
                <ItemTemplate>
    <asp:Literal ID="a_suo"  runat="server" Text='<%# Trim(DataBinder.Eval(Container, "DataItem.a_suo")) %>'></asp:Literal>
              </ItemTemplate>            
            </asp:TemplateField>
                     
            <asp:TemplateField HeaderText="提交时间">
                <ItemTemplate>
    <asp:Literal  runat="server" Text='<%# Trim(DataBinder.Eval(Container, "DataItem.A_Time")) %>'></asp:Literal>
              </ItemTemplate>            
            </asp:TemplateField>
            
        </Columns>
    </asp:GridView>取值  Dim dingdan As String = DirectCast(a_list.Rows(i).Cells(6).FindControl("a_dingdan"), Literal).Text
      

  6.   

    需要用模板列<asp:GridView ID="a_list" runat="server" CssClass="list-table" AutoGenerateColumns="False" HeaderStyle-CssClass="list-tabletitle">
        <Columns>
            
             <asp:TemplateField HeaderText="订单号">
                <ItemTemplate>
    <asp:Literal ID="a_dingdan"  runat="server" Text='<%# Trim(DataBinder.Eval(Container, "DataItem.a_dingdan")) %>'></asp:Literal>
              </ItemTemplate>            
            </asp:TemplateField>
            
        <asp:TemplateField HeaderText="是否锁定">
                <ItemTemplate>
    <asp:Literal ID="a_suo"  runat="server" Text='<%# Trim(DataBinder.Eval(Container, "DataItem.a_suo")) %>'></asp:Literal>
              </ItemTemplate>            
            </asp:TemplateField>
                     
            <asp:TemplateField HeaderText="提交时间">
                <ItemTemplate>
    <asp:Literal  runat="server" Text='<%# Trim(DataBinder.Eval(Container, "DataItem.A_Time")) %>'></asp:Literal>
              </ItemTemplate>            
            </asp:TemplateField>
            
        </Columns>
    </asp:GridView>
      取值
      Dim dingdan As String = DirectCast(a_list.Rows(i2).Cells(6).FindControl("a_dingdan"), Literal).Text
      

  7.   

    把<asp:BoundField DataField="Name" HeaderText="姓名" />换成<asp:TemplateField>
    然后在<asp:TemplateField>里面放一个<asp:label>用来显示Name,再根据根据label的id来取Name.
      

  8.   


    protected void cbxIsType_CheckedChanged(object sender, EventArgs e)
        {
            SortedList p_dataValue = new SortedList();
            p_dataValue.Add("IsType", ((CheckBox)sender).Checked == true ? "1" : "0");        string RID = ((HtmlInputHidden)(((CheckBox)sender).Parent.FindControl("hid_RID"))).Value;        audit_CaseCmp = new Audit_CaseCmp();
            audit_CaseCmp.DataUpdate(p_dataValue, " RID = '" + RID + "'");        this.Load_GridView();    }
      

  9.   

    你用GridView绑定肯定是个列表,那么你在绑定的时候这样可以获取 在GV里面加个事件
    例如onrowdatabound="gvMain_RowDataBound" protected void gvMain_RowDataBound(object sender, GridViewRowEventArgs e)
     {
                if (e.Row.RowType == DataControlRowType.DataRow && e.Row.RowIndex != gvMain.EditIndex)
                {
                    BoundField test = (BoundField)e.Row.Cells[这里是在TemplateField第几位].FindControl("BoundField ");             }
            }
      

  10.   

    我估计是是想编辑的时候 点击那个就把那个NAME取出来吧  
      

  11.   

    标签里边设置个自定义  id='name'string name = TextBox.Attributes["name"];