【问题标题】:Why use Container.Dataitem in the scenario instead of Eval?为什么在场景中使用 Container.Dataitem 而不是 Eval?
【发布时间】:2014-07-10 15:59:33
【问题描述】:

我正在尝试将数组列表数据绑定到转发器控件。当我尝试使用 Eval 时,它不起作用。当我使用 Container.Dataitem 时,它可以工作。为什么有区别?哪些情况下应该使用Eval,哪些情况下应该使用Container.Dataitem?

Protected Sub Page_Load(ByVal sender As Object, ByVal e As EventArgs) Handles Me.Load
    Dim values As New ArrayList()

    values.Add("Foo1")
    values.Add("Foo2")
    values.Add("Foo3")
    values.Add("Foo4")
    values.Add("Foo5")

    Repeater1.DataSource = values
    Repeater1.DataBind()
End Sub

<asp:Repeater ID="Repeater1" runat="server" >
        <ItemTemplate>
            <%# Container.DataItem %>
        </ItemTemplate>     
</asp:Repeater>

【问题讨论】:

标签: c# asp.net


【解决方案1】:

在这种特定情况下,Eval 将不起作用,因为您的 DataItem 对象只是普通字符串。

documentation for the Eval method 说:

表达式参数的值必须计算为公共属性。

由于string 没有用于获取其值的公共属性,Eval 方法将失败,而Container.DataItem 属性将是实际字符串,因此将显示该值。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-05-24
    • 1970-01-01
    • 2022-01-22
    • 1970-01-01
    • 2010-09-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多