<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();
}
} 请问为什么?
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();
}
} 请问为什么?
我后台应该是找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");