天天看點

把布爾值轉為通俗顯示

某些值在資料庫存儲為BIT,在asp.net顯示時,它會顯示為True或False。但實際情況之下,我們需要它顯示通俗語言表達。如某種狀态為開或關等。

在asp.net顯示,可以有好幾種去顯示,

第一種,你可以使用CheckBox來表示狀态,True将顯示選中的效果,反之,是非選中的效果。而使用CheckBox也有兩種情形,一種是CheckBox擺放在非Data控件模闆中,直接放在網頁中

<asp:CheckBox ID="CheckBox1" runat="server"  /> 

cs:

this.CheckBox1.Checked = (bool)dataRow["Status"];

另外一種就是擺放在Data控件中,如Gridview,DataList,Repeater等。狀态 :

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

第二種,是使用Label來顯示:

<ItemTemplate>

    <asp:Label ID="Label1" runat="server" Text='<%# MyStatus(Eval("Status"))%>'></asp:Label> 

</ItemTemplate>

 protected string MyStatus(object obj)

    {

        if (obj == null) return string.Empty;

        if (bool.Parse(obj.ToString()))

            return "開";

        else

            return "關";

    }

第三種,就是你不想寫cs,直接在.aspx頁面去作判斷: 

 <%# (bool)Eval("Status") ? "開":"關" %>

第四種,就是Insus.NET使用的方法,直接在資料庫處理好了。用CASE函數或RIGHT JOIN 均可。具體參考:

在.aspx顯示,如下寫法,顯示結果為“開”或“關”:

<asp:Label ID="Label1" runat="server" Text='<%# Eval("Status")%>'></asp:Label>