DataBinder.Eval Metode
Definisi
Penting
Beberapa informasi terkait produk prarilis yang dapat diubah secara signifikan sebelum dirilis. Microsoft tidak memberikan jaminan, tersirat maupun tersurat, sehubungan dengan informasi yang diberikan di sini.
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.