我知道这个问题已被回答了几次,但它并不是我需要它的方式。
基本上我有这段代码:
<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。
答案 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>