【问题标题】:Anonymous Types in a repeater - Eval? Dynamic?中继器中的匿名类型 - Eval?动态的?
【发布时间】:2012-08-30 17:44:19
【问题描述】:

好的,所以我从两个列表的连接中创建了一个匿名类型。我将它绑定到我的中继器以便在我的页面上显示它但是......我不确定最好的方法是什么。我应该在 asp 页面中执行 Eval() 吗?我应该使用新的动态类型吗?目前这种情况的最佳做法是什么?

【问题讨论】:

  • 它仍然是强类型,所以数据绑定器应该可以正常工作。
  • 使用Eval 是相当标准的,但如果您想要智能感知和类型安全,您可以创建一个自定义类来表示加入两个列表所产生的结果。

标签: c# asp.net linq


【解决方案1】:

我喜欢将这种方法用于匿名对象和 eval:

代码背后:

rpt.DataSource = list.Select(i => new 
  {
    Url = i.GetField("Url"),
    Text = i.GetField("Text")
  });
rpt.DataBind();

标记:

<asp:Repeater ID="rpt" runat="server">
    <ItemTemplate>
        <a href="<%# Eval("Url") %>"><%# Eval("Text") %></a>
    </ItemTemplate>
</asp:Repeater>

顺便说一下,如果您使用 ASP.NET 4.5,我建议您使用强类型中继器,更多信息在这里:

http://weblogs.asp.net/scottgu/archive/2011/09/02/strongly-typed-data-controls-asp-net-vnext-series.aspx

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-09-28
    • 2011-07-04
    • 2018-05-19
    • 1970-01-01
    • 2017-07-14
    相关资源
    最近更新 更多