即使检查了Gridview复选框,它也会被检查= false

时间:2015-04-22 20:07:18

标签: c# asp.net gridview checkbox controls

我有一个用数据表填充的gridview,并且有一个带有复选框的项目模板。即使选中该复选框,cs代码也会显示checked = false。

天冬氨酸:

     <asp:GridView ID="gvListOfPages" runat="server" AutoGenerateColumns="false" ShowHeader="false">
                        <Columns>  
                            <asp:TemplateField>
                                <ItemTemplate>
                                    <asp:CheckBox ID="chkPages" runat="server" />
                                </ItemTemplate>
                            </asp:TemplateField>
                            <asp:BoundField DataField="PageName" />                           
                        </Columns>
                    </asp:GridView>

C#:

 foreach (GridViewRow row in gvListOfPages.Rows)
    {
        System.Web.UI.WebControls.CheckBox chk = (System.Web.UI.WebControls.CheckBox)row.Cells[0].FindControl("chkPages");
        if (chk != null && chk.Checked)
        {
            int arrayIndex = Convert.ToInt32(chk.ID.Substring(chk.ID.Length - 1, chk.ID.Length));
        }
    }

1 个答案:

答案 0 :(得分:1)

只需更改

即可
(System.Web.UI.WebControls.CheckBox)row.Cells[0].FindControl("chkPages")

<击>

(System.Web.UI.WebControls.CheckBox)row.FindControl("chkPages")

使用FindControl时无需指定单元格。您可能可能会遇到chk != null条件 如果情况并非如此,那么请确保您GridView Page_Load !IsPostBackprotected void Page_Load(object sender, EventArgs e) { if (!IsPostBack) { //Bind your grid here } } 绑定{。}}。

insert

希望这有帮助。