2011-09-05 79 views
3

我有一個內容佔位符中的動態內容放置在綁定到對象數據源的數據列表中。問題是我需要檢查EVAL的值。這裏是代碼:EVAL IN C#asp.net

<asp:DataList ID="DataList1" runat="server" CellPadding="4" 
       DataSourceID="ObjectDataSource1" ForeColor="#333333"> 
       <AlternatingItemStyle BackColor="White" /> 
       <FooterStyle BackColor="#507CD1" Font-Bold="True" ForeColor="White" /> 
       <HeaderStyle BackColor="#507CD1" Font-Bold="True" ForeColor="White" /> 
       <ItemStyle BackColor="#EFF3FB" /> 
       <ItemTemplate> 


        <a href="<%# Eval("VendorLink") %>"> <%# Eval("Vendor") %></a> 
        <br /> 
        <a href="<%# Eval("TitleLink") %> "><%# Eval("Title") %></a> 
        <br /> 
        <asp:Label ID="DescLabel" runat="server" Text='<%# Eval("Desc") %>' /> 
        <br /> 
        <asp:Label ID="DetailsLabel" runat="server" Text='<%# Eval("Details") %>' /> 
        <br /> 
        <asp:Label ID="RptIDLabel" runat="server" Text='<%# Eval("RptID") %>' /> 
        <br /> 

        <asp:Label ID="LinksLabel" runat="server" Text='<%# Eval("Links") %>' /> 
        <br /> 
        <br /> 

       </ItemTemplate> 
       <SelectedItemStyle BackColor="#D1DDF1" Font-Bold="True" ForeColor="#333333" /> 
      </asp:DataList> 

我想說

<%if(Eval("RptID") =="SomeString") { Eval("rtpid") = "Pass");}%> 

我需要的檢查是在aspx頁面,而不是aspx.cs頁面!如何執行檢查?

回答

4

代碼的功能,您可以檢查象下面這樣:

<%# Eval("VenderLink") == "somestring" ? "p %> 
2

你需要用單引號包裹你的表達,否則它是無效的SGML。解析器認爲該屬性在第二個"結束。

<a href='<%# Eval("VendorLink") %>'> <%# Eval("Vendor") %></a> 

你不能在綁定上下文使用IF contructs,只有綁定表達式。您總是可以掛鉤ItemDataBound,並將您的邏輯放在服務器端(或將其移至代碼隱藏方法中)。

protected void repeater_ItemDataBound(object sender, RepeaterItemEventArgs e) 
{  
     var descLabel= e.Item.FindControl("RptIDLabel") as Label; 
     var data = (MyDataType)e.Item.DataItem; 
     if (data.RptID == "SomeString") 
     { 
      descLabel.Text = "Pass"; 
     } 
     ...  
} 
7

你可以這樣做:

<%# (Eval("UserName") == "Test 1") ? "no.png" : "yes.gif" %> 
2

Eval("RptID")它是一個函數,所以你不能做Eval("rtpid") = 「東西」;

如果你需要編寫邏輯,你總是可以在後面的代碼中創建一個保護或公共函數,這將返回你所需要的字符串。

你可以這樣調用

<%# TransformString(Eval("RptID")) %> 

功能和背後

protected string TransformString(object rptid) 
{ 
    //some code goes here 
} 
3

試試這個,

<%# string.Compare(Eval("RptID").ToString(), "SomeString") == 0 ? Eval("RptID") : "Nothing" %>