DataBinder.Eval Metodo
Definizione
Importante
Alcune informazioni sono relative alla release non definitiva del prodotto, che potrebbe subire modifiche significative prima della release definitiva. Microsoft non riconosce alcuna garanzia, espressa o implicita, in merito alle informazioni qui fornite.
Usa la reflection per analizzare e valutare un'espressione di data binding su un oggetto in fase di esecuzione.
Overload
| Nome | Descrizione |
|---|---|
| Eval(Object, String) |
Valuta le espressioni di data binding in fase di esecuzione. |
| Eval(Object, String, String) |
Valuta le espressioni di data binding in fase di esecuzione e formatta il risultato come stringa. |
Commenti
A partire da .NET Framework 4.5, è possibile usare l'associazione di modelli per semplificare alcune delle attività da eseguire tramite il data binding nelle versioni precedenti. Per una serie di esercitazioni sull'uso dell'associazione di modelli con Web Form, vedere Associazione di modelli e Web Form.
Eval(Object, String)
Valuta le espressioni di data binding in fase di esecuzione.
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
Parametri
- container
- Object
Riferimento all'oggetto su cui viene valutata l'espressione. Deve essere un identificatore di oggetto valido nella lingua specificata della pagina.
- expression
- String
Percorso di spostamento dall'oggetto container al valore della proprietà pubblica da inserire nella proprietà del controllo associato. Deve essere una stringa di nomi di proprietà o di campi separati da punti, ad esempio Tables[0].DefaultView.[0].Price in C# o Tables(0).DefaultView.(0).Price in Visual Basic.
Valori restituiti
Istanza risultante Object dalla valutazione dell'espressione di associazione dati.
Eccezioni
expression è o è null una stringa vuota dopo il taglio.
Esempio
Negli esempi seguenti viene illustrato come usare il Eval metodo per associare i dati al Repeater controllo. Richiede una classe di dati denominata 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
Il file code-behind carica i dati di test e associa tali dati a un Repeater controllo .
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
Nella sintassi dichiarativa per il Repeater controllo si usa il Eval metodo con Container.DataItem per il container parametro .
<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>
In alternativa, è possibile chiamare Eval la funzione e non includere il container parametro .
<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>
Commenti
Il valore del expression parametro deve restituire una proprietà pubblica.
Questo metodo viene chiamato automaticamente quando si creano associazioni dati in una finestra di progettazione rapida dello sviluppo di applicazioni (RAD), ad esempio Visual Studio. È anche possibile usarlo in modo dichiarativo per semplificare il cast in una stringa di testo. A tale scopo, usare la sintassi dell'espressione <%# %>, come usato nel data binding standard ASP.NET.
Questo metodo è particolarmente utile quando si associano dati a controlli inclusi in un elenco basato su modelli.
Note
Poiché questo metodo esegue una valutazione con associazione tardiva, usando la reflection in fase di esecuzione, può causare un rallentamento notevole delle prestazioni rispetto alla sintassi standard di data binding ASP.NET.
Per uno qualsiasi dei controlli Web dell'elenco, ad esempio GridView, DetailsView, DataListo Repeater, container deve essere Container.DataItem. Se si esegue l'associazione alla pagina, container deve essere Page.
A partire da .NET Framework 4.5, è possibile usare l'associazione di modelli per semplificare alcune delle attività da eseguire tramite il data binding nelle versioni precedenti. Per una serie di esercitazioni sull'uso dell'associazione di modelli con Web Form, vedere Associazione di modelli e Web Form.
Vedi anche
Si applica a
Eval(Object, String, String)
Valuta le espressioni di data binding in fase di esecuzione e formatta il risultato come stringa.
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
Parametri
- container
- Object
Riferimento all'oggetto su cui viene valutata l'espressione. Deve essere un identificatore di oggetto valido nella lingua specificata della pagina.
- expression
- String
Percorso di spostamento dall'oggetto container al valore della proprietà pubblica da inserire nella proprietà del controllo associato. Deve essere una stringa di nomi di proprietà o di campi separati da punti, ad esempio Tables[0].DefaultView.[0].Price in C# o Tables(0).DefaultView.(0).Price in Visual Basic.
- format
- String
Stringa di formato .NET Framework (ad esempio quelle usate da Format(String, Object)) che converte l'istanza di Object restituita dall'espressione di data binding in un oggetto String.
Valori restituiti
Oggetto String risultante dalla valutazione dell'espressione di data binding e dalla conversione in un tipo stringa.
Esempio
Negli esempi seguenti viene illustrato come usare il Eval metodo per associare i dati al Repeater controllo. Richiede una classe di dati denominata 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
Il file code-behind carica i dati di test e associa tali dati a un Repeater controllo .
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
Nella sintassi dichiarativa per il Repeater controllo si usa il Eval metodo con Container.DataItem per il container parametro .
<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>
In alternativa, è possibile chiamare Eval la funzione e non includere il container parametro .
<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>
Commenti
Il valore di expression deve restituire una proprietà pubblica.
Per altre informazioni sulle stringhe di formato in .NET Framework, vedere Formatting Types.
Questo metodo viene chiamato automaticamente quando si creano associazioni dati in una finestra di progettazione rapida dello sviluppo di applicazioni (RAD), ad esempio Visual Studio. È anche possibile usarlo in modo dichiarativo per convertire l'oggetto Object risultante dall'espressione di data binding in un oggetto String. Per usare il metodo in modo dichiarativo, usare la sintassi dell'espressione <%# %>, come usato nel data binding standard ASP.NET.
Questo metodo è particolarmente utile quando si associano dati a controlli inclusi in un elenco basato su modelli.
Note
Poiché questo metodo esegue una valutazione con associazione tardiva, usando la reflection in fase di esecuzione, può causare un rallentamento notevole delle prestazioni rispetto alla sintassi standard di data binding ASP.NET. Utilizzare questo metodo con cautela, in particolare quando la formattazione delle stringhe non è necessaria.
Per uno qualsiasi dei controlli Web dell'elenco, ad esempio GridView, DetailsView, DataListo Repeater, container deve essere Container.DataItem. Se si esegue l'associazione alla pagina, container deve essere Page.
A partire da .NET Framework 4.5, è possibile usare l'associazione di modelli per semplificare alcune delle attività da eseguire tramite il data binding nelle versioni precedenti. Per una serie di esercitazioni sull'uso dell'associazione di modelli con Web Form, vedere Associazione di modelli e Web Form.