即使已选中,复选框也不会评估为true

时间:2014-02-13 20:11:21

标签: c# asp.net

我有一个gridview,它有一个注册复选框和一个waitlist复选框,取决于一些值我隐藏其中一个复选框并显示一个明星有一些奇怪的原因当我运行我的网站一次它评估为真我下次得到一些错误说

Checked The name 'Checked' does not exist in the current context    

的.aspx

 <asp:TemplateField HeaderText="Register" ItemStyle-CssClass="template-center">
                        <ItemTemplate >
                            <asp:CheckBox ID="chkRegister" runat="server"/>
                            <asp:Label ID="lblStarRegister" runat="server" Text="*" ForeColor="Red"></asp:Label>
                        </ItemTemplate>
                    </asp:TemplateField>
                    <asp:TemplateField HeaderText="Wait List" ItemStyle-CssClass="template-center">
                        <ItemTemplate>
                            <asp:CheckBox ID="chkWaitList" runat="server" />
                            <asp:Label ID="lblStarWaitList" runat="server" Text="*" ForeColor="Red"></asp:Label>
                        </ItemTemplate>
                    </asp:TemplateField>

背后的代码

  if ((((CheckBox)row.FindControl("chkRegister")).Checked == true) || (((CheckBox)row.FindControl("chkWaitList")).Checked == true))

1 个答案:

答案 0 :(得分:1)

Visible = false无法呈现您的控制权。使用display:none隐藏您的控件。它将可用。

编辑:

使用css,如

.hiddenelement
{
    display:none;
}

在要隐藏的复选框上应用此类。喜欢

<asp:CheckBox ID="chkRegister" runat="server" CssClass="hiddenelement"/>

该复选框将被隐藏,但在后面的代码中可用。

EDIT2:

if (true)
{
    chkRegister.CssClass = "displaynone";
}
else
{
   chkRegister.CssClass = chkRegister.CssClass.Replace("displaynone", "");
}