在绑定控件中求值
本文关键字:控件 绑定 | 更新日期: 2023-09-27 18:15:54
我知道这个问题已经回答过几次了,但它总是不是我需要的方式。
基本上我有这样的代码:
<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.
Repeater,至少在webform中,不支持"if"语句,相反,您可以使用"三元"操作符,例如:string src = (a==b) ?"平等":"景";所以你的代码可以这样替换:
<ItemTemplate>
<a href="#" class="logo">
<img width="226" height="68"
src='<%# (Convert.ToInt32(Eval("TreeID")) == PrimaryNavigation1.ParentID) ? Eval("Logo") : "" %>'
alt="<%# Eval("HotelName") %>"
/>
</a>
</ItemTemplate>