DataBinder.Eval Yöntem
Tanım
Önemli
Bazı bilgiler ürünün ön sürümüyle ilgilidir ve sürüm öncesinde önemli değişiklikler yapılmış olabilir. Burada verilen bilgilerle ilgili olarak Microsoft açık veya zımni hiçbir garanti vermez.
Çalışma zamanında bir nesneye karşı bir veri bağlama ifadesini ayrıştırmak ve değerlendirmek için yansıma kullanır.
Aşırı Yüklemeler
Eval(Object, String) |
Çalışma zamanında veri bağlama ifadelerini değerlendirir. |
Eval(Object, String, String) |
Çalışma zamanında veri bağlama ifadelerini değerlendirir ve sonucu dize olarak biçimlendirer. |
Açıklamalar
.NET Framework 4.5 sürümünden başlayarak, önceki sürümlerde veri bağlama aracılığıyla gerçekleştirmeniz gereken bazı görevleri basitleştirmek için model bağlamayı kullanabilirsiniz. Web Forms ile model bağlama kullanma öğretici serisi için bkz. Model Bağlama ve Web Forms.
Eval(Object, String)
Çalışma zamanında veri bağlama ifadelerini değerlendirir.
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
Parametreler
- container
- Object
İfadenin değerlendirildiği nesne başvurusu. Bu, sayfanın belirtilen dilinde geçerli bir nesne tanımlayıcısı olmalıdır.
- expression
- String
Nesneden container
, ilişkili denetim özelliğine yerleştirilecek ortak özellik değerine giden gezinti yolu. Bu, Tablolar[0] gibi noktalarla ayrılmış bir özellik veya alan adları dizesi olmalıdır. Defaultview. [0].
C# veya Tablolarda Fiyat(0). Defaultview. (0). fiyat
Visual Basic.
Döndürülenler
Object Veri bağlama ifadesinin değerlendirilmesinden kaynaklanan bir örnek.
Özel durumlar
expression
, null
kırpıldıktan sonra boş bir dizedir.
Örnekler
Aşağıdaki örneklerde, denetime veri Repeater bağlamak için yönteminin Eval
nasıl kullanılacağı gösterilir. Product adlı bir veri sınıfı gerektirir.
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
Arka planda kod dosyası test verilerini yükler ve bu verileri bir Repeater denetime bağlar.
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
Denetimin bildirim temelli söz diziminde Repeater parametresi için container
ile Container.DataItem
yöntemini kullanırsınızEval.
<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>
Veya işlevini çağırabilir Eval
ve parametresini container
dahil ekleyebilirsiniz.
<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>
Açıklamalar
parametresinin expression
değeri genel bir özelliğe göre değerlendirilmelidir.
Bu yöntem, Visual Studio gibi hızlı bir uygulama geliştirme (RAD) tasarımcısında veri bağlamaları oluşturduğunuzda otomatik olarak çağrılır. Bir metin dizesine dönüştürmeyi basitleştirmek için bildirim temelli olarak da kullanabilirsiniz. Bunu yapmak için, standart ASP.NET veri bağlamada kullanılan ifade söz dizimini kullanırsınız<%# %>
.
Bu yöntem özellikle verileri şablonlu bir listede yer alan denetimlere bağlarken kullanışlıdır.
Not
Bu yöntem, çalışma zamanında yansıma kullanarak geç bağlı değerlendirme gerçekleştirdiğinden, standart ASP.NET veri bağlama söz dizimine kıyasla performansın önemli ölçüde yavaşlamasına neden olabilir.
, DetailsView, veya Repeatercontainer
gibi GridViewliste Web denetimlerinden herhangi biri için olmalıdırContainer.DataItem
. DataList Sayfaya bağlanıyorsanız, container
olmalıdır Page
.
.NET Framework 4.5 sürümünden başlayarak, önceki sürümlerde veri bağlama aracılığıyla gerçekleştirmeniz gereken bazı görevleri basitleştirmek için model bağlamayı kullanabilirsiniz. Web Forms ile model bağlama kullanma öğretici serisi için bkz. Model Bağlama ve Web Forms.
Ayrıca bkz.
Şunlara uygulanır
Eval(Object, String, String)
Çalışma zamanında veri bağlama ifadelerini değerlendirir ve sonucu dize olarak biçimlendirer.
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
Parametreler
- container
- Object
İfadenin değerlendirildiği nesne başvurusu. Bu, sayfanın belirtilen dilinde geçerli bir nesne tanımlayıcısı olmalıdır.
- expression
- String
Nesneden container
, ilişkili denetim özelliğine yerleştirilecek ortak özellik değerine giden gezinti yolu. Bu, Tablolar[0] gibi noktalarla ayrılmış bir özellik veya alan adları dizesi olmalıdır. Defaultview. [0].
C# veya Tablolarda Fiyat(0). Defaultview. (0). fiyat
Visual Basic.
- format
- String
Veri bağlama ifadesi tarafından döndürülen örneği bir nesneye dönüştüren bir String .NET Framework biçim dizesi (tarafından Format(String, Object)kullanılanlar Object gibi).
Döndürülenler
String Veri bağlama ifadesinin değerlendirilmesi ve dize türüne dönüştürülmesi sonucu elde eden nesne.
Örnekler
Aşağıdaki örneklerde, denetime veri Repeater bağlamak için yönteminin Eval
nasıl kullanılacağı gösterilir. Product adlı bir veri sınıfı gerektirir.
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
Arka planda kod dosyası test verilerini yükler ve bu verileri bir Repeater denetime bağlar.
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
Denetimin bildirim temelli söz diziminde Repeater parametresi için container
ile Container.DataItem
yöntemini kullanırsınızEval.
<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>
Veya işlevini çağırabilir Eval
ve parametresini container
dahil ekleyebilirsiniz.
<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>
Açıklamalar
değerinin expression
bir ortak özellik olarak değerlendirilmesi gerekir.
.NET Framework biçim dizeleri hakkında daha fazla bilgi için bkz. Biçimlendirme Türleri.
Bu yöntem, Visual Studio gibi hızlı bir uygulama geliştirme (RAD) tasarımcısında veri bağlamaları oluşturduğunuzda otomatik olarak çağrılır. Veri bağlama ifadesinden elde edilen sonucu değerine dönüştürmek Object için Stringbildirimli olarak da kullanabilirsiniz. Yöntemini bildirim temelli olarak kullanmak için, standart ASP.NET veri bağlamasında kullanılan ifade söz dizimini kullanın<%# %>
.
Bu yöntem özellikle verileri şablonlu bir listede yer alan denetimlere bağlarken kullanışlıdır.
Not
Bu yöntem, çalışma zamanında yansıma kullanarak geç bağlı değerlendirme gerçekleştirdiğinden, standart ASP.NET veri bağlama söz dizimine kıyasla performansın önemli ölçüde yavaşlamasına neden olabilir. Özellikle dize biçimlendirmesi gerekli olmadığında, bu yöntemi dikkatle kullanın.
, DetailsView, veya Repeatercontainer
gibi GridViewliste Web denetimlerinden herhangi biri için olmalıdırContainer.DataItem
. DataList Sayfaya bağlanıyorsanız, container
olmalıdır Page
.
.NET Framework 4.5 sürümünden başlayarak, önceki sürümlerde veri bağlama aracılığıyla gerçekleştirmeniz gereken bazı görevleri basitleştirmek için model bağlamayı kullanabilirsiniz. Web Forms ile model bağlama kullanma öğretici serisi için bkz. Model Bağlama ve Web Forms.