【问题标题】:Use if statement of parent repeater in nested repeater在嵌套中继器中使用父中继器的 if 语句
【发布时间】:2018-02-24 16:35:47
【问题描述】:

我有 2 个嵌套中继器。我想将来自第一个中继器的一个数据与第二个数据进行比较。如果第一个转发器中的数据与第二个转发器中的数据相同,我将在第二个转发器中显示一些代码(div、ul、li 等)。我怎样才能做到这一点?这是一个例子:

<asp:Repeater ID="Repeater1" runat="server" OnItemDataBound="Repeater1_ItemDataBound">
    <ItemTemplate>
        <asp:Repeater ID="Repeater2" runat="server">
            <ItemTemplate>
                <% if (Eval("username").ToString() == ***Repeater1Eval * **)
                    { %>
                //Show Something
                  <% }
                else
                { %>
                //Show Something
               <% } %>
            </ItemTemplate>
        </asp:Repeater>
    </ItemTemplate>
</asp:Repeater>

【问题讨论】:

  • 我的问题是我不能在第二个转发器 if 语句中的第一个转发器上使用 eval。我想比较Repeater2 ItemTemplate 中的Repeater1 Eval 和Repeater2 Eval。我怎样才能做到这一点? @derloopkat

标签: asp.net .net


【解决方案1】:

可以做到,但需要一个冗长的内联三元运算符。

<%# Eval("username").ToString() == (((IDataItemContainer)Container.Parent.Parent).DataItem as System.Data.DataRowView)["username"].ToString() ? "Same username as Parent" : "" %>

【讨论】:

  • 感谢您的帮助!问题已经这样解决了:&lt;%# &lt;Repeater1Eval&gt;.ToString() == DataBinder.Eval(((RepeaterItem)Container.Parent.Parent).DataItem, "&lt;Repeater2Eval&gt;").ToString() ? "Same username as Parent" : "" %&gt;
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多