我在.aspx页面中使用的asp:Repeater控件看起来类似于:
<ol>
<asp:Repeater ID="Repeater1" runat="server">
<ItemTemplate>
<li>
<%# Container.DataItem %>
</li>
</ItemTemplate>
</asp:Repeater>
</ol>
注意:在代码隐藏中,我正在将一个通用的数据列表绑定到Repeater1控件
我正在努力寻找如何捕获Container.DataItem的值,然后根据值更改[li style =“myStyle”]标记的style属性。< / p>
我正在寻找内联解决方案,使伪代码看起来像这样:
<ol>
<asp:Repeater ID="Repeater1" runat="server">
<ItemTemplate>
<% if(Container.DataItem == "some value")
{
<li style="style1">
<%# Container.DataItem %>
</li>
}
else
{
<li style="style2">
<%# Container.DataItem %>
</li>
}
%>
</ItemTemplate>
</asp:Repeater>
</ol>
是否有一种内联方式来完成上面的示例伪代码?如果是这样,怎么样?
答案 0 :(得分:2)
您可以尝试:
<ol>
<asp:Repeater ID="Repeater1" runat="server">
<ItemTemplate>
<li style="<%# (string) Container.DataItem == "some value" ? "style1" : "style2" %>">
<%# Container.DataItem %>
</li>
</ItemTemplate>
</asp:Repeater>
</ol>
答案 1 :(得分:2)
<ol>
<asp:Repeater ID="Repeater1" runat="server">
<ItemTemplate>
<%# string value = Container.DataItem as string; %>
<li class="<%=value == "some value" ? "style1" : "style2" %>">
<%=value %>
</li>
</ItemTemplate>
</asp:Repeater>
</ol>
答案 2 :(得分:0)
你可以准确地写出来。
但是,您应该将Container.DataItem
强制转换为字符串。否则,您将获得参考比较
如果你没有绑定到字符串列表,你可以将Container.DataItem
转换为它实际上的任何类型,并用它做事。