我有Repeater
。它从某些表中获取数据。这个表有3列。
我想要的是如果column1 = true,将显示column2,如果column1 = false 将显示第3列。
布局将是这样的:
c1 = true | c2
c1 = true | c2
c1 = false | c3
c1 = true | c2
c1 = false | c3
我怎样才能做到这一点?
答案 0 :(得分:2)
只需在Literal
模板中使用Repeater
:
<asp:Repeater runat="server" ID="rep">
<ItemTemplate>
<asp:Literal runat="server" ID="lit1" OnDataBinding="lit1_DataBinding"></asp:Literal>
</ItemTemplate>
</asp:Repeater>
然后实施DataBinding
:
protected void lit1_DataBinding(object sender, System.EventArgs e)
{
Literal lit = (Literal)(sender);
lit.Text = ((bool)(Eval("Column1")) ?
Eval("Column2").ToString() : Eval("Column3").ToString();
}
答案 1 :(得分:0)
您可以在没有代码隐藏的情况下以声明方式执行所有操作:
<asp:Repeater runat="server" ID="rpt">
<ItemTemplate>
<%# (bool)Eval("Column1") ? Eval("Column2") : Eval("Column3") %><br />
</ItemTemplate>
</asp:Repeater>