<asp:GridView ID="GVCompany" runat="server" AutoGenerateColumns="False"
      DataKeyNames="V_ID" OnPageIndexChanging="GVCompany_PageIndexChanging" OnRowDeleting="GVCompany_RowDeleting" CellPadding="4" ForeColor="#333333" GridLines="None" PageSize="50" Font-Size="12px">
      <Columns>
          <asp:TemplateField HeaderText="选择">
              <HeaderTemplate>
                  <asp:CheckBox id="checkAll" runat="server" onclick="CheckAll(this)" Text="全选" />
              </HeaderTemplate>
              <ItemTemplate>
                  <asp:CheckBox ID="selectCompany" runat="server" AutoPostBack="True" OnCheckedChanged="selectCompany_CheckedChanged" />
              </ItemTemplate>
          </asp:TemplateField>
          <asp:BoundField DataField="V_ID" HeaderText="V_ID" InsertVisible="False" ReadOnly="True"
              SortExpression="V_ID" Visible="False" />
          <asp:BoundField DataField="Company" HeaderText="公司名称" SortExpression="Company" />
          <asp:BoundField DataField="CumGuiMuo" HeaderText="注册资本" SortExpression="CumGuiMuo" />
      </Columns>
</asp:GridView> 在页面中全选后,在后台代码中为何取不到checkbox对象?
后台:
        string s = "";
        for (int i = 0; i < GVCompany.Rows.Count ; i++)
        {
            System.Web.UI.WebControls.CheckBox cbox = (System.Web.UI.WebControls.CheckBox)GVCompany.Rows[i].FindControl("checkAll");
            if (cbox.Checked == true)//到这里的时候,老是cbox=null
            {
                s += GVCompany.DataKeys[i].Value.ToString(); 
            }
        } 请问为什么?

解决方案 »

  1.   

    知道了.我首先加了一个"全选",然后每列数据又加了一个"选择".
    我后台应该是找System.Web.UI.WebControls.CheckBox   cbox   =   (System.Web.UI.WebControls.CheckBox)GVCompany.Rows[i].FindControl("selectCompany"); 
    而不是找
    System.Web.UI.WebControls.CheckBox   cbox   =   (System.Web.UI.WebControls.CheckBox)GVCompany.Rows[i].FindControl("checkAll");