Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/311.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 复选框不';无法在ASP.NET GridView中进行检查_C#_Asp.net_Webforms - Fatal编程技术网

C# 复选框不';无法在ASP.NET GridView中进行检查

C# 复选框不';无法在ASP.NET GridView中进行检查,c#,asp.net,webforms,C#,Asp.net,Webforms,我有一个项目,我试图在GridView中选中CheckBox控件。不幸的是,每当我这样做时,它从未被检查,每次都返回false。下面是我到目前为止尝试过的代码: ASP.NET <asp:GridView ID="grdAssignMenu" runat="server" AutoGenerateColumns="False" CssClass="custListTBL" Height="298px" Width="324px"> <Columns>

我有一个项目,我试图在
GridView
中选中CheckBox控件。不幸的是,每当我这样做时,它从未被检查,每次都返回false。下面是我到目前为止尝试过的代码:

ASP.NET

<asp:GridView ID="grdAssignMenu" runat="server" AutoGenerateColumns="False" CssClass="custListTBL" Height="298px" Width="324px">
      <Columns>
            <asp:TemplateField>
                  <ItemTemplate>
                       <asp:CheckBox ID="chkControl" runat="server" />
                  </ItemTemplate>
            </asp:TemplateField>
            <asp:TemplateField HeaderText="Menu Name">
                  <ItemTemplate>
                       <asp:Label ID="lblMenu" runat="server" Text='<%# Eval("roleName").ToString() %>'></asp:Label>
                  </ItemTemplate>
            </asp:TemplateField>
      </Columns>
</asp:GridView>

基本上,我想从选中的
复选框
中检索相关数据,并确保上面的代码是有效的。但是,任何建议都是非常值得赞赏的

如果尚未绑定gridview,请在绑定gridview之前尝试使用(!IsPostBack)。每次aspx页面回发到代码时,您的gridview可能都会刷新。此外,如果这没有帮助,请共享页面加载代码或绑定gridview的代码。

请确保问题从创建时开始,因为gridview创建复选框时,没有使用回发值初始化它们。它只是渲染它。如何初始化GridView?非常感谢@Ratan。这实际上起了作用,挽救了我的一天。
protected void btnSave_Click(object sender, EventArgs e)
{
    foreach (GridViewRow row in grdAssignMenu.Rows)
    {
        System.Web.UI.WebControls.CheckBox cb = (System.Web.UI.WebControls.CheckBox)row.FindControl("chkControl");
        bool status = cb.Checked;

        if (cb.Checked) //Returns false every time, even though checked
        {
           System.Web.UI.WebControls.Label lbl = (System.Web.UI.WebControls.Label)row.FindControl("lblMenu");
           string lblValue = lbl.Text;

           lblMsg.Text = lblValue;
        }
    }
}