DataBinder.Eval Método
Definição
Importante
Algumas informações se referem a produtos de pré-lançamento que podem ser substancialmente modificados antes do lançamento. A Microsoft não oferece garantias, expressas ou implícitas, das informações aqui fornecidas.
Usa reflexão para analisar e avaliar uma expressão de associação de dados em um relação a um objeto em tempo de execução.
Sobrecargas
Eval(Object, String) |
Avalia as expressões de associação de dados em tempo de execução. |
Eval(Object, String, String) |
Avalia as expressões de associação de dados em tempo de execução e formata o resultado como uma cadeia de caracteres. |
Comentários
A partir do .NET Framework 4.5, você pode usar a model binding para simplificar algumas das tarefas que você teve que executar por meio da associação de dados em versões anteriores. Para obter uma série de tutoriais sobre como usar a associação de modelo com Web Forms, consulte Model Binding e Web Forms.
Eval(Object, String)
Avalia as expressões de associação de dados em tempo de execução.
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
Parâmetros
- container
- Object
A referência de objeto na qual a expressão é avaliada. Este valor deve ser um identificador de objeto válido no idioma especificado da página.
- expression
- String
O caminho de navegação do objeto container
para o valor da propriedade pública a ser colocado na propriedade do controle associado. Esse valor deve ser uma cadeia de caracteres de nomes de campo ou propriedade separados por pontos, como Tables[0].DefaultView.[0].Price
no C# ou Tables(0).DefaultView.(0).Price
no Visual Basic.
Retornos
Uma instância Object que resulta da avaliação da expressão de associação de dados.
Exceções
expression
é null
ou é uma cadeia de caracteres vazia após a filtragem.
Exemplos
Os exemplos a seguir mostram como usar o Eval
método para associar dados ao Repeater controle. Ele requer uma classe de dados chamada 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
O arquivo code-behind carrega dados de teste e associa esses dados a um Repeater controle .
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
Na sintaxe declarativa do Repeater controle , use o Eval método com Container.DataItem
para o container
parâmetro .
<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>
Ou você pode chamar Eval
a função e não incluir o container
parâmetro .
<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>
Comentários
O valor do expression
parâmetro deve ser avaliado como uma propriedade pública.
Esse método é chamado automaticamente quando você cria associações de dados em um designer RAD (desenvolvimento rápido de aplicativos), como o Visual Studio. Você também pode usá-lo declarativamente para simplificar a conversão em uma cadeia de caracteres de texto. Para fazer isso, use a <%# %>
sintaxe de expressão, conforme usado na associação de dados de ASP.NET padrão.
Esse método é particularmente útil ao associar dados a controles que estão em uma lista de modelos.
Observação
Como esse método executa a avaliação de associação tardia, usando reflexão em tempo de execução, ele pode fazer com que o desempenho seja visivelmente lento em comparação com a sintaxe de associação de dados padrão ASP.NET.
Para qualquer um dos controles da Web de lista, como GridView, DetailsViewDataList, ou Repeater, container
deve ser Container.DataItem
. Se você estiver associando à página, container
deverá ser Page
.
A partir do .NET Framework 4.5, você pode usar a model binding para simplificar algumas das tarefas que você teve que executar por meio da associação de dados em versões anteriores. Para obter uma série de tutoriais sobre como usar a associação de modelo com Web Forms, consulte Model Binding e Web Forms.
Confira também
Aplica-se a
Eval(Object, String, String)
Avalia as expressões de associação de dados em tempo de execução e formata o resultado como uma cadeia de caracteres.
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
Parâmetros
- container
- Object
A referência de objeto na qual a expressão é avaliada. Este valor deve ser um identificador de objeto válido no idioma especificado da página.
- expression
- String
O caminho de navegação do objeto container
para o valor da propriedade pública a ser colocado na propriedade do controle associado. Esse valor deve ser uma cadeia de caracteres de nomes de campo ou propriedade separados por pontos, como Tables[0].DefaultView.[0].Price
no C# ou Tables(0).DefaultView.(0).Price
no Visual Basic.
- format
- String
Uma cadeia de caracteres de formato do .NET Framework (como aquelas usadas pelo Format(String, Object)) que converte a instância Object retornada pela expressão de associação de dados em um objeto String.
Retornos
Um objeto String que resulta da avaliação da expressão de associação de dados e a converte em um tipo de cadeia de caracteres.
Exemplos
Os exemplos a seguir mostram como usar o Eval
método para associar dados ao Repeater controle. Ele requer uma classe de dados chamada 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
O arquivo code-behind carrega dados de teste e associa esses dados a um Repeater controle .
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
Na sintaxe declarativa do Repeater controle , use o Eval método com Container.DataItem
para o container
parâmetro .
<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>
Ou você pode chamar Eval
a função e não incluir o container
parâmetro .
<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>
Comentários
O valor de expression
deve ser avaliado como uma propriedade pública.
Para obter mais informações sobre cadeias de caracteres de formato no .NET Framework, consulte Tipos de formatação.
Esse método é chamado automaticamente quando você cria associações de dados em um designer RAD (desenvolvimento rápido de aplicativos), como o Visual Studio. Você também pode usá-lo declarativamente para converter o Object resultante da expressão de associação de dados em um String. Para usar o método declarativamente, use a <%# %>
sintaxe de expressão, conforme usado na associação de dados de ASP.NET padrão.
Esse método é particularmente útil ao associar dados a controles que estão em uma lista de modelos.
Observação
Como esse método executa a avaliação de associação tardia, usando reflexão em tempo de execução, ele pode fazer com que o desempenho seja visivelmente lento em comparação com a sintaxe de associação de dados padrão ASP.NET. Use esse método criteriosamente, especialmente quando a formatação de cadeia de caracteres não for necessária.
Para qualquer um dos controles da Web de lista, como GridView, DetailsViewDataList, ou Repeater, container
deve ser Container.DataItem
. Se você estiver associando à página, container
deverá ser Page
.
A partir do .NET Framework 4.5, você pode usar a model binding para simplificar algumas das tarefas que você teve que executar por meio da associação de dados em versões anteriores. Para obter uma série de tutoriais sobre como usar a associação de modelo com Web Forms, consulte Model Binding e Web Forms.