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;
}
}
}