2014-02-13 44 views
0

我有一个gridview有一个注册复选框和一个等候列表复选框,具体取决于某些值我隐藏其中一个复选框并显示一个奇怪的原因,当我运行我的网站之一它的计算结果为真,下一次的时间,我得到了一些错误说复选框即使被检查也没有评估为真

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)) 
+0

由于我打字这个我想我找到了,因为我隐藏和显示我觉得我的复选框我因为如果该复选框是不可见的语句不能评估.Checked – Tim

回答

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", ""); 
} 
+0

我该怎么办使用display:代码后面没有?现在即时通讯使用chkWaitlist.visible = false; – Tim

+0

对不起没有解释我自己我动态地隐藏我的复选框,所以必须在gridviewrowdatabound事件,我应用基于其他条件的CSS这是可能的 – Tim

+0

@Tim请参阅编辑。希望这会有所帮助 – Kashif

相关问题