簡體   English   中英

為什么在場景中使用Container.Dataitem而不是Eval?

[英]Why use Container.Dataitem in the scenario instead of Eval?

我正在嘗試將數組綁定到轉發器控件。 當我嘗試使用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>

在這種特定情況下, Eval將無法工作,因為您的DataItem對象只是純字符串。

Eval方法文檔說:

expression參數的值必須求值為公共屬性。

由於string沒有用於獲取其值的公共屬性,因此Eval方法將失敗,而Container.DataItem屬性將是實際字符串,因此將顯示該值。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM