DataRepeater在每个条目中显示不同的列

时间:2011-04-14 00:44:37

标签: c# asp.net data-binding repeater

我有Repeater。它从某些表中获取数据。这个表有3列。

我想要的是如果column1 = true,将显示column2,如果column1 = false 将显示第3列。

布局将是这样的:

c1 = true  | c2
c1 = true  | c2
c1 = false | c3
c1 = true  | c2
c1 = false | c3

我怎样才能做到这一点?

2 个答案:

答案 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>