数据绑定控件中的Eval

时间:2014-07-31 15:48:34

标签: c# html asp.net

我知道这个问题已被回答了几次,但它并不是我需要它的方式。

基本上我有这段代码:

<Engine:WidgetSQLDataSource ID="DS_Hotel" runat="server" SelectCommand="site.GetHotelList" />

    <asp:Repeater ID="rp_GuestHotelInfo" runat="server" DataSourceID="DS_Hotel">
        <ItemTemplate>
            <% if (Convert.ToInt32(Eval("TreeID")) == PrimaryNavigation1.ParentID) { %>
            <a href="#" class="logo"><img width="226" height="68" src="<%# Eval("Logo") %>" alt="<%# Eval("HotelName") %>" /></a>
            <% } %>
        </ItemTemplate>
        </asp:Repeater>

我要做的是根据当前页面的父ID更改徽标。

但是我收到的错误是:

  

数据绑定方法,如Eval(),XPath()和Bind()只能是   在数据绑定控件的上下文中使用。

我有什么想法可以解决这个问题? 谢谢, T.J。

1 个答案:

答案 0 :(得分:0)

转发器,至少在webform中,不支持&#34; if&#34;声明,而你可以使用&#34;三元&#34;运算符,例如:string src =(a == b)? &#34;等于&#34;:&#34; diferent&#34 ;; 因此,您的代码可能会被替换为:

    <ItemTemplate>
        <a href="#" class="logo">
        <img width="226" height="68" 
            src='<%# (Convert.ToInt32(Eval("TreeID")) == PrimaryNavigation1.ParentID) ? Eval("Logo") : "" %>'  
            alt="<%# Eval("HotelName") %>"
        />
        </a>
    </ItemTemplate>