DataBinder.Eval Yöntem

Tanım

Ç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.

Şunlara uygulanır