GridView 的 FindControl方法
我把Gridview控件封装到一个Web用户自定义控件中,GridView中有一列CheckBox,但是用FindControl方法却不能访问,求助!
private List<string> GetIds()
{
List<string> ids = new List<string>();
for (int i = 0; i <= GridView1.Rows.Count - 1; i++)
{
CheckBox chkChoose = (CheckBox)GridView1.Rows[i].FindControl("CheckBox1");
if (chkChoose.Checked)
{
ids.Add(GridView1.DataKeys[i].Value.ToString());
}
}
return ids;
}
<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False"
CellPadding="4" ForeColor="#333333" GridLines="None" BorderWidth="1px"
onrowdatabound="GridView1_RowDataBound" OnRowCreated="GridView1_RowCreated" >
<FooterStyle BackColor="#507CD1" Font-Bold="True" ForeColor="White" />
<RowStyle BackColor="#EFF3FB" />
<Columns>
<asp:TemplateField HeaderText ="选择">
<HeaderTemplate>
<asp:CheckBox ID="chkAll" name="chkAll" runat="server" />
</HeaderTemplate>
<ItemTemplate >
<asp:CheckBox ID="CheckBox1" name="CheckBox1" runat="server" />
</ItemTemplate>
</asp:TemplateField>
</Columns>
<PagerStyle BackColor="#2461BF" ForeColor="White" HorizontalAlign="Center" />
<SelectedRowStyle BackColor="#D1DDF1" Font-Bold="True" ForeColor="#333333" />
<HeaderStyle BackColor="#507CD1" Font-Bold="True" ForeColor="White" />
<EditRowStyle BackColor="#2461BF" />
<AlternatingRowStyle BackColor="White" />
</asp:GridView>