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şı veri bağlama ifadesini ayrıştırmak ve değerlendirmek için yansımayı kullanır.
Aşırı Yüklemeler
| Name | Description |
|---|---|
| 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'den 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, C# dilinde Tables[0].DefaultView.[0].Price veya Visual Basic'da Tables(0).DefaultView.(0).Price gibi noktalarla ayrılmış bir özellik veya alan adları dizesi olmalıdır.
Döndürülenler
Object Veri bağlama ifadesinin değerlendirilmesinden kaynaklanan bir örnek.
Özel durumlar
expression veya null kırpıldıktan sonra boş bir dizedir.
Örnekler
Aşağıdaki örneklerde, denetime veri Eval bağlamak için yönteminin nasıl kullanılacağı Repeater gösterilmektedir. 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 Eval ile Container.DataItem yöntemini kullanırsınızcontainer.
<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>
İsterseniz, 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ıldığı gibi <%# %> ifade söz dizimini kullanırsınız.
Bu yöntem, verileri şablonlu bir listede yer alan denetimlere bağlarken özellikle yararlıdır.
Note
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ş çalışmasına neden olabilir.
, , GridViewveya DetailsViewDataList gibi Repeatercontainerliste Web denetimlerinden herhangi biri için olmalıdırContainer.DataItem. Sayfaya bağlanıyorsanız, container olmalıdır Page.
.NET Framework 4.5'den 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, C# dilinde Tables[0].DefaultView.[0].Price veya Visual Basic'da Tables(0).DefaultView.(0).Price gibi noktalarla ayrılmış bir özellik veya alan adları dizesi olmalıdır.
- format
- String
Veri bağlama ifadesi tarafından döndürülen Format(String, Object) örneğini Object nesnesine dönüştüren bir .NET Framework biçim dizesi (String tarafından kullanılanlar gibi).
Döndürülenler
String Veri bağlama ifadesini değerlendirmenin ve dize türüne dönüştürmenin sonucu olan nesne.
Örnekler
Aşağıdaki örneklerde, denetime veri Eval bağlamak için yönteminin nasıl kullanılacağı Repeater gösterilmektedir. 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 Eval ile Container.DataItem yöntemini kullanırsınızcontainer.
<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>
İsterseniz, 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'teki biçim dizeleri hakkında daha fazla bilgi için bkz. Formatting Types.
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 bildirimli olarak kullanmak için, standart ASP.NET veri bağlamada kullanıldığı gibi <%# %> ifade söz dizimini kullanın.
Bu yöntem, verileri şablonlu bir listede yer alan denetimlere bağlarken özellikle yararlıdır.
Note
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ş çalışmasına neden olabilir. Bu yöntemi, özellikle dize biçimlendirmesi gerekli olmadığında, judiciously kullanın.
, , GridViewveya DetailsViewDataList gibi Repeatercontainerliste Web denetimlerinden herhangi biri için olmalıdırContainer.DataItem. Sayfaya bağlanıyorsanız, container olmalıdır Page.
.NET Framework 4.5'den 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.
- XPathBinder
- IBindableTemplate
- .NET'da
Biçimlendirme Türleri