Bahasa

DataBinder.Eval Metode

Definisi

Menggunakan pantulan untuk mengurai dan mengevaluasi ekspresi pengikatan data terhadap objek pada waktu proses.

Overload

Nama Deskripsi
Eval(Object, String)

Mengevaluasi ekspresi pengikatan data pada waktu proses.

Eval(Object, String, String)

Mengevaluasi ekspresi pengikatan data pada waktu proses dan memformat hasilnya sebagai string.

Keterangan

Mulai dari .NET Framework 4.5, Anda dapat menggunakan pengikatan model untuk menyederhanakan beberapa tugas yang harus Anda lakukan melalui pengikatan data di versi sebelumnya. Untuk seri tutorial tentang menggunakan pengikatan model dengan Formulir Web, lihat Pengikatan Model dan Formulir Web.

Eval(Object, String)

Mengevaluasi ekspresi pengikatan data pada waktu proses.

public:
 static System::Object ^ Eval(System::Object ^ container, System::String ^ expression);
public static object Eval(object container, string expression);
static member Eval : obj * string -> obj
Public Shared Function Eval (container As Object, expression As String) As Object

Parameter

container
Object

Referensi objek tempat ekspresi dievaluasi. Ini harus menjadi pengidentifikasi objek yang valid dalam bahasa yang ditentukan halaman.

expression
String

Jalur navigasi dari container objek ke nilai properti publik yang akan ditempatkan di properti kontrol terikat. Ini harus berupa string nama properti atau bidang yang dipisahkan oleh titik, seperti Tables[0].DefaultView.[0].Price di C# atau Tables(0).DefaultView.(0).Price di Visual Basic.

Mengembalikan

Instans Object yang dihasilkan dari evaluasi ekspresi pengikatan data.

Pengecualian

expression adalah null atau adalah string kosong setelah pemangkasan.

Contoh

Contoh berikut menunjukkan cara menggunakan Eval metode untuk mengikat data untuk Repeater dikontrol. Ini memerlukan kelas data bernama Product.

public class Product
{
    public int ProductID { get; set; }
    public string Name { get; set; }
    public double Price { get; set; }
}
Public Class Product
    Public Property ProductID As Integer
    Public Property Name As String
    Public Property Price As Double
End Class

File code-behind memuat data pengujian dan mengikat data tersebut ke Repeater kontrol.

public partial class ShowProducts : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {
        var products = new List<Product>();
        products.Add(new Product() { ProductID = 1, Name = "Bike", Price = 150.00 });
        products.Add(new Product() { ProductID = 2, Name = "Helmet", Price = 19.99 });
        products.Add(new Product() { ProductID = 3, Name = "Tire", Price = 10.00 });

        ProductList.DataSource = products;
        ProductList.DataBind();
    }
}
Public Class ShowProducts
    Inherits System.Web.UI.Page

    Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
        Dim products As New List(Of Product)()
        products.Add(New Product With {.ProductID = 1, .Name = "Bike", .Price = 150.0})
        products.Add(New Product With {.ProductID = 2, .Name = "Helmet", .Price = 19.99})
        products.Add(New Product With {.ProductID = 3, .Name = "Tire", .Price = 10.0})

        ProductList.DataSource = products
        ProductList.DataBind()
    End Sub

End Class

Dalam sintaks deklaratif untuk Repeater kontrol, Anda menggunakan Eval metode dengan Container.DataItem untuk container parameter .

<asp:Repeater ID="ProductList" runat="server">
    <ItemTemplate>
        <%# DataBinder.Eval(Container.DataItem, "Name") %> for only <%# DataBinder.Eval(Container.DataItem, "Price", "{0:c}") %>
        <br />
        <a href='<%# DataBinder.Eval(Container.DataItem, "ProductID", "details.asp?id={0}") %>'>See Details</a>
        <br />
        <br />
    </ItemTemplate>
</asp:Repeater>
<asp:Repeater ID="ProductList" runat="server">
    <ItemTemplate>
        <%# DataBinder.Eval(Container.DataItem, "Name") %> for only <%# DataBinder.Eval(Container.DataItem, "Price", "{0:c}") %>
        <br />
        <a href='<%# DataBinder.Eval(Container.DataItem, "ProductID", "details.asp?id={0}") %>'>See Details</a>
        <br />
        <br />
    </ItemTemplate>
</asp:Repeater>

Atau, Anda dapat memanggil Eval fungsi dan tidak menyertakan container parameter .

<asp:Repeater ID="ProductList" runat="server">
    <ItemTemplate>
        <%# Eval("Name") %> for only <%# Eval("Price", "{0:c}") %>
        <br />
        <a href='<%# Eval("ProductID", "details.asp?id={0}") %>'>See Details</a>
        <br />
        <br />
    </ItemTemplate>
</asp:Repeater>
<asp:Repeater ID="ProductList" runat="server">
    <ItemTemplate>
        <%# Eval("Name") %> for only <%# Eval("Price", "{0:c}") %>
        <br />
        <a href='<%# Eval("ProductID", "details.asp?id={0}") %>'>See Details</a>
        <br />
        <br />
    </ItemTemplate>
</asp:Repeater>

Keterangan

Nilai expression parameter harus dievaluasi ke properti publik.

Metode ini secara otomatis dipanggil saat Anda membuat pengikatan data dalam perancang pengembangan aplikasi cepat (RAD) seperti Visual Studio. Anda juga dapat menggunakannya secara deklaratif untuk menyederhanakan transmisi ke string teks. Untuk melakukannya, Anda menggunakan sintaks ekspresi <%# %>, seperti yang digunakan dalam pengikatan data ASP.NET standar.

Metode ini sangat berguna saat mengikat data ke kontrol yang ada dalam daftar templat.

Note

Karena metode ini melakukan evaluasi terlambat terikat, menggunakan refleksi pada waktu proses, metode ini dapat menyebabkan performa terlihat lambat dibandingkan dengan sintaks pengikatan data ASP.NET standar.

Untuk salah satu daftar kontrol Web, seperti GridView, , DetailsView, DataListatau Repeater, container harus Container.DataItem. Jika Anda mengikat halaman, container harus Page.

Mulai dari .NET Framework 4.5, Anda dapat menggunakan pengikatan model untuk menyederhanakan beberapa tugas yang harus Anda lakukan melalui pengikatan data di versi sebelumnya. Untuk seri tutorial tentang menggunakan pengikatan model dengan Formulir Web, lihat Pengikatan Model dan Formulir Web.

Lihat juga

Berlaku untuk

Eval(Object, String, String)

Mengevaluasi ekspresi pengikatan data pada waktu proses dan memformat hasilnya sebagai string.

public:
 static System::String ^ Eval(System::Object ^ container, System::String ^ expression, System::String ^ format);
public static string Eval(object container, string expression, string format);
static member Eval : obj * string * string -> string
Public Shared Function Eval (container As Object, expression As String, format As String) As String

Parameter

container
Object

Referensi objek tempat ekspresi dievaluasi. Ini harus menjadi pengidentifikasi objek yang valid dalam bahasa yang ditentukan halaman.

expression
String

Jalur navigasi dari container objek ke nilai properti publik yang akan ditempatkan di properti kontrol terikat. Ini harus berupa string nama properti atau bidang yang dipisahkan oleh titik, seperti Tables[0].DefaultView.[0].Price di C# atau Tables(0).DefaultView.(0).Price di Visual Basic.

format
String

String format .NET Framework (seperti yang digunakan oleh Format(String, Object)) yang mengonversi instans Object yang dikembalikan oleh ekspresi pengikatan data ke objek String.

Mengembalikan

Objek String yang dihasilkan dari mengevaluasi ekspresi pengikatan data dan mengonversinya menjadi jenis string.

Contoh

Contoh berikut menunjukkan cara menggunakan Eval metode untuk mengikat data untuk Repeater dikontrol. Ini memerlukan kelas data bernama Product.

public class Product
{
    public int ProductID { get; set; }
    public string Name { get; set; }
    public double Price { get; set; }
}
Public Class Product
    Public Property ProductID As Integer
    Public Property Name As String
    Public Property Price As Double
End Class

File code-behind memuat data pengujian dan mengikat data tersebut ke Repeater kontrol.

public partial class ShowProducts : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {
        var products = new List<Product>();
        products.Add(new Product() { ProductID = 1, Name = "Bike", Price = 150.00 });
        products.Add(new Product() { ProductID = 2, Name = "Helmet", Price = 19.99 });
        products.Add(new Product() { ProductID = 3, Name = "Tire", Price = 10.00 });

        ProductList.DataSource = products;
        ProductList.DataBind();
    }
}
Public Class ShowProducts
    Inherits System.Web.UI.Page

    Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
        Dim products As New List(Of Product)()
        products.Add(New Product With {.ProductID = 1, .Name = "Bike", .Price = 150.0})
        products.Add(New Product With {.ProductID = 2, .Name = "Helmet", .Price = 19.99})
        products.Add(New Product With {.ProductID = 3, .Name = "Tire", .Price = 10.0})

        ProductList.DataSource = products
        ProductList.DataBind()
    End Sub

End Class

Dalam sintaks deklaratif untuk Repeater kontrol, Anda menggunakan Eval metode dengan Container.DataItem untuk container parameter .

<asp:Repeater ID="ProductList" runat="server">
    <ItemTemplate>
        <%# DataBinder.Eval(Container.DataItem, "Name") %> for only <%# DataBinder.Eval(Container.DataItem, "Price", "{0:c}") %>
        <br />
        <a href='<%# DataBinder.Eval(Container.DataItem, "ProductID", "details.asp?id={0}") %>'>See Details</a>
        <br />
        <br />
    </ItemTemplate>
</asp:Repeater>
<asp:Repeater ID="ProductList" runat="server">
    <ItemTemplate>
        <%# DataBinder.Eval(Container.DataItem, "Name") %> for only <%# DataBinder.Eval(Container.DataItem, "Price", "{0:c}") %>
        <br />
        <a href='<%# DataBinder.Eval(Container.DataItem, "ProductID", "details.asp?id={0}") %>'>See Details</a>
        <br />
        <br />
    </ItemTemplate>
</asp:Repeater>

Atau, Anda dapat memanggil Eval fungsi dan tidak menyertakan container parameter .

<asp:Repeater ID="ProductList" runat="server">
    <ItemTemplate>
        <%# Eval("Name") %> for only <%# Eval("Price", "{0:c}") %>
        <br />
        <a href='<%# Eval("ProductID", "details.asp?id={0}") %>'>See Details</a>
        <br />
        <br />
    </ItemTemplate>
</asp:Repeater>
<asp:Repeater ID="ProductList" runat="server">
    <ItemTemplate>
        <%# Eval("Name") %> for only <%# Eval("Price", "{0:c}") %>
        <br />
        <a href='<%# Eval("ProductID", "details.asp?id={0}") %>'>See Details</a>
        <br />
        <br />
    </ItemTemplate>
</asp:Repeater>

Keterangan

Nilai expression harus dievaluasi ke properti publik.

Untuk informasi selengkapnya tentang string format dalam kerangka kerja .NET, lihat Formatting Type.

Metode ini secara otomatis dipanggil saat Anda membuat pengikatan data dalam perancang pengembangan aplikasi cepat (RAD) seperti Visual Studio. Anda juga dapat menggunakannya secara deklaratif untuk mengonversi Object hasil dari ekspresi pengikatan data menjadi String. Untuk menggunakan metode secara deklaratif, gunakan sintaks ekspresi <%# %>, seperti yang digunakan dalam pengikatan data ASP.NET standar.

Metode ini sangat berguna saat mengikat data ke kontrol yang ada dalam daftar templat.

Note

Karena metode ini melakukan evaluasi terlambat terikat, menggunakan refleksi pada waktu proses, metode ini dapat menyebabkan performa terlihat lambat dibandingkan dengan sintaks pengikatan data ASP.NET standar. Gunakan metode ini secara yudisius, terutama ketika pemformatan string tidak diperlukan.

Untuk salah satu daftar kontrol Web, seperti GridView, , DetailsView, DataListatau Repeater, container harus Container.DataItem. Jika Anda mengikat halaman, container harus Page.

Mulai dari .NET Framework 4.5, Anda dapat menggunakan pengikatan model untuk menyederhanakan beberapa tugas yang harus Anda lakukan melalui pengikatan data di versi sebelumnya. Untuk seri tutorial tentang menggunakan pengikatan model dengan Formulir Web, lihat Pengikatan Model dan Formulir Web.

Lihat juga

Berlaku untuk