asp.net
  • checkbox
  • boolean-operations
  • 2013-11-21 94 views 1 likes 
    1

    我正在使用VS2012和SQL Server 2008R2中的此表單。該表獲得真或假的位值。在Gridview itemtemplate中,我不想顯示空的複選框,而是想說「True or False」。我怎樣才能做到這一點?這是我迄今所做的:Asp.Net - 根據布爾值複選框在UI上寫入True/False

    <asp:CheckBox ID="CheckBox1" runat="server" Checked='<%# (Eval("Banned").ToString())%>' /> 
    

    回答

    1

    您需要設置CheckBox控制的Text財產,像這樣:

    <asp:CheckBox ID="CheckBox1" runat="server" 
           Checked='<%# DisplayTruth(Eval("Banned").ToString()) %>' 
           Text='<%# DisplayTruthValue(Eval("Banned").ToString()) %>' /> 
    

    現在在你的後臺代碼,創建兩個方法,像這樣:

    protected bool DisplayTruth(string banned) 
    { 
        if(banned == "0") 
        { 
         return true; 
        } 
    
        return false; 
    } 
    
    protected string DisplayTruthValue(string banned) 
    { 
        if(banned == "0") 
        { 
         return "True"; 
        } 
    
        return "False"; 
    } 
    

    我推薦這種方法,原因如下:

    • 的標記不包含條件/三元邏輯
    • 更容易調試邏輯與嵌入的代碼塊
    • 您可以利用Visual Studio的編譯器的功率趕在編譯時間與運行 - 語法錯誤當邏輯嵌入到標記的綁定語法中時發生錯誤
    +0

    謝謝卡爾,你回答了我的問題。我改變了這個VB,它工作正常。正如你所提到的,我可以使用我想要顯示的文本。 – Nita

    +0

    @尼塔 - 很高興它幫助,我猜你想要C#。隨意編輯答案以包含VB.NET版本,或者我可以做到這一點,如果你想。 –

    +0

    @Nita - 如果你覺得這個答案對你有幫助,那麼請接受答案和/或對答案進行投票。 :-) –

    0

    我發現此信息並且它正在工作。此外,我將asp:checkbox改爲asp:label。不過,我想顯示「否」而不是「False」,所以我將「False」更改爲「No」,但我的應用仍然顯示「False」。

    <asp:Label ID="CheckBox1" runat="server" Text='<%# IIf(Convert.ToString(Eval("Banned")) = "", "No", Eval("Banned"))%>' /> 
    
    相關問題