我需要在模板中多次访问绑定(bind)项的值。现在我的 ListView 模板如下所示:
<asp:ListView ID="ListView1" runat="server" ItemPlaceholderID="plc"><br/>
<ItemTemplate><br/>
<input type="radio" class="myrating<%# DataBinder.Eval(Container.DataItem, "Day")%>" value="3" /><br/>
<input type="radio" class="myrating<%# DataBinder.Eval(Container.DataItem, "Day")%>" value="4" /><br/>
</ItemTemplate><br/>
<LayoutTemplate><br/>
<div id="plc" runat="server"><br/>
</div><br/>
</LayoutTemplate><br/>
<EmptyDataTemplate><br/>
No data</EmptyDataTemplate><br/>
</asp:ListView><br/>
在某些情况下我可能有几十个单选按钮所以反复调用<%# DataBinder.Eval(Container.DataItem, "Day")%>
似乎效率低下。
我想将该表达式的值分配给一个变量,然后使用该变量,这样我的模板就会看起来像这样
<ItemTemplate><br />
<%String ClassName = "myrating" + <%# DataBinder.Eval(Container.DataItem, "Day")%><br />
<input type="radio" class="<%=ClassName %>" value="3" /><br />
<input type="radio" class="<%="ClassName" value="4" /><br />
</ItemTemplate><br />
这个例子无法编译,但我希望你能明白。
最佳答案
您可以为您的页面提供一个公共(public)变量 MyRating。
现在您可以在表达式绑定(bind)中分配变量语法:
<ItemTemplate>
<%# MyRating = "myrating" + <%# Eval(Container.DataItem, "Day")%>
//Use the variable inside the binding(!) block
<%#MyRating
</ItemTemplate>
我通常绑定(bind)到 View 对象列表。这样我就可以直接访问 View 属性。
<ItemTemplate>
<%# MyType = (MyType)Container.DataItem
<%# MyRating.Average %>
<%# MyRating.Count %>
</ItemTemplate>
希望这有帮助:-)
关于asp.net - 如何将数据绑定(bind)表达式的值存储到变量中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1122083/