2014-02-13 70 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

相關問題