我正在尝试创建一个转发器,该转发器包含具有动态类,动态背景色和图标(在运行时放置)的元素。 我有一个中继器
<asp:Repeater ID="repdashboard" runat="server">
<HeaderTemplate></HeaderTemplate>
<ItemTemplate>
<div class="col-lg-3 col-md-6">
<div if("<%#Eval("id") %>"= 1 ? " class=panel-primary )>
<div class="panel-heading">
<div class="row">
<div class="col-xs-3">
<i class="fa fa-comments fa-5x"></i>
</div>
<div class="col-xs-9 text-right">
<div class="huge">26</div>
<div>'<%#Eval("Tag") %>'!</div>
</div>
</div>
</div>
<a href="#">
<div class="panel-footer" style="color: #337ab7;">
<span class="pull-left">View Details</span>
<span class="pull-right"><i class="fa fa-arrow-circle-right"></i></span>
<div class="clearfix"></div>
</div>
</a>
</div>
</div>
</ItemTemplate>
</asp:Repeater>
我想代表div中的动态值应用类
<div if("<%#Eval("id") %>"= 1 ? " class=panel-primary )>
何时
`<%#Eval("id") %> = 1`
然后应用class= panel panel-primary
什么时候
<%#Eval("id") %> = 2
然后应用class = panel panel-green
答案 0 :(得分:3)
您不能只在HTML中的某个地方写一个if
并期望它能工作。您需要一个代码块。
<div class="<%# Convert.ToInt32(Eval("id")) == 1 ? "panel panel-primary" : "panel panel-green" %>">
如果您想要更多的评估来生成一个类,我会在后面的代码中推荐一个方法。
public string AddClass(int id)
{
if (id == 1)
return "panel panel-primary";
else if (id == 2)
return "panel panel-green";
else
return "panel other";
}
然后在中继器中
<div class="<%# AddClass(Convert.ToInt32(Eval("id"))) %>">