DataBinder.Eval Yöntem

Tanım

Ç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

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

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.

Ayrıca bkz.

Şunlara uygulanır