同桌上课用手指进去了好爽_欧美丰满熟妇xxⅹⅹ性大i_成人av天天日天天拍拍_猛男gay帅男gay男男同志_欧美va天堂在线观看_人妻无码av中文系列三里桃花_亚欧免费无码在线观看_久久久精品国产亚洲av水_日韩在线免费看污污污_2021无码专区人妻系列日韩

首頁(yè) 優(yōu)化推廣 ASP.NET中使用Eval()函數(shù)綁定數(shù)據(jù)時(shí),不能使用IF進(jìn)行邏輯判斷的解決方案

ASP.NET中使用Eval()函數(shù)綁定數(shù)據(jù)時(shí),不能使用IF進(jìn)行邏輯判斷的解決方案

來(lái)源: | 時(shí)間:2013/5/3 11:50:35 |

很多次,我在使用ASP.NET數(shù)據(jù)綁定控件中綁定數(shù)據(jù)時(shí) 使用if語(yǔ)句進(jìn)行邏輯判斷!但是肯定那是失敗了!沒(méi)有辦法,既然遇到了這個(gè)棘手問(wèn)題,先Google,baidu一下吧! 其他人也有此想法,雖然方案不是很好,但我還是記錄下來(lái)吧!以便以后查看。

先來(lái)說(shuō)一說(shuō):<%# Eval(“Field”)%> 吧!

我們?cè)诳丶兄苯佑?lt;%# Eval(“Field”)%>,那他應(yīng)該相當(dāng)于:<%="str”%>和<% respose.write(“str”)%> 吧!因?yàn)樵诳丶薪壎ê笏稻椭苯语@示了!相當(dāng)于輸出咯!

我曾經(jīng)多少次想這樣寫(xiě):<%# if(Eval(“Field”)=="str”){...}else{...}%> 可惜這樣他不行啊!

1.如果簡(jiǎn)單的話可以使用三元運(yùn)算符,<%# Eval(“Field”)=="str”?"somecode":"somecode"%>

但是如何if判斷后處理很復(fù)雜呢?顯然三元運(yùn)算符不是很好!那樣頁(yè)面代碼很多,我們畢竟不是在做ASP,也不好看,美工也不好寫(xiě)樣式!

2.在后臺(tái)頁(yè)面寫(xiě)邏輯代碼,返回字符串

public void Handler(string str)
    {
        if (str.Length > 5000)
        {
            Response.Write("<div title='" + str + "'>" + str.Substring(0, 1000) + "</div>");
        }
        else
        {
            Response.Write(str);
        }

    }
    // or
    public string Handler(string str)
    {
        if (str.Length > 5000)
        {
            return "<div title='" + str + "'>" + str.Substring(0, 1000) + "</div>";
        }
        else
        {
            return str;
        }
    }

 

前臺(tái)調(diào)用:

<%# Handler(Eval("Field").ToString()) %>
注意Eval還可以綁定對(duì)象.屬性 如:<%# Handler(Eval("User.Name").ToString()) %>
3.摘自網(wǎng)絡(luò)

<% int _nIndex=0; %> <!--定義一個(gè)臨時(shí)的整型變量-->
<asp:Repeater ID="_TopicRepeater" Runat="SERVER" DataSource="...">
<ItemTemplate>
    <%# DataBinder.Eval(Container.DataItem, "Title")   %>
    <%# DataBinder.Eval(Container.DataItem, "Author")  %>
    <%# DataBinder.Eval(Container.DataItem, "Clicked") %>
    <%# DataBinder.Eval(Container.DataItem, "ReCount") %>
<%
int nReCount=(int)(((DataView)_TopicRepeater.DataSource).Table.Rows[_nIndex++]["ReCount"]);
// 也可以分成幾句來(lái)寫(xiě)
// DataView DV=(DataView)_TopicRepeater.DataSource;
// DV.Table.Rows[_nIndex++]["ReCount"];
if(nReCount==0) { %>
     ----
<% } else { %>
    <%# DataBinder.Eval(Container.DataItem, "LastReplyer") %>
<% } %>
</ItemTemplate>
</asp:Repeater>

服務(wù)熱線

153 8323 9821

功能和特性

價(jià)格和優(yōu)惠

網(wǎng)站和維護(hù)

推廣和優(yōu)化

微信服務(wù)號(hào)