DataBinder.Eval Méthode
Définition
Important
Certaines informations portent sur la préversion du produit qui est susceptible d’être en grande partie modifiée avant sa publication. Microsoft exclut toute garantie, expresse ou implicite, concernant les informations fournies ici.
Utilise la réflexion pour analyser et évaluer une expression de liaison de données par rapport à un objet au moment de l’exécution.
Surcharges
| Nom | Description |
|---|---|
| Eval(Object, String) |
Évalue les expressions de liaison de données au moment de l’exécution. |
| Eval(Object, String, String) |
Évalue les expressions de liaison de données au moment de l’exécution et met en forme le résultat sous forme de chaîne. |
Remarques
À partir de .NET Framework 4.5, vous pouvez utiliser la liaison de modèle pour simplifier certaines des tâches que vous deviez effectuer via la liaison de données dans les versions antérieures. Pour obtenir une série de tutoriels sur l’utilisation de la liaison de modèle avec Web Forms, consultez Liaison de modèle et Web Forms.
Eval(Object, String)
Évalue les expressions de liaison de données au moment de l’exécution.
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
Paramètres
- container
- Object
Référence d’objet par rapport à laquelle l’expression est évaluée. Il doit s’agir d’un identificateur d’objet valide dans la langue spécifiée de la page.
- expression
- String
Chemin de navigation de l’objet container à la valeur de propriété publique à placer dans la propriété de contrôle liée. Il doit s’agir d’une chaîne de noms de propriété ou de champs séparés par des points, tels que Tables[0].DefaultView.[0].Price en C# ou Tables(0).DefaultView.(0).Price dans Visual Basic.
Retours
Instance Object qui résulte de l’évaluation de l’expression de liaison de données.
Exceptions
expression est null ou est une chaîne vide après la suppression.
Exemples
Les exemples suivants montrent comment utiliser la Eval méthode pour lier des données au Repeater contrôle. Elle nécessite une classe de données nommée 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
Le fichier code-behind charge les données de test et lie ces données à un Repeater contrôle.
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
Dans la syntaxe déclarative du Repeater contrôle, vous utilisez la Eval méthode avec Container.DataItem pour le container paramètre.
<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>
Vous pouvez également appeler Eval la fonction et ne pas inclure le container paramètre.
<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>
Remarques
La valeur du expression paramètre doit être évaluée à une propriété publique.
Cette méthode est automatiquement appelée lorsque vous créez des liaisons de données dans un concepteur de développement d’applications rapide (RAD) tel que Visual Studio. Vous pouvez également l’utiliser de manière déclarative pour simplifier la conversion en chaîne de texte. Pour ce faire, vous utilisez la syntaxe d’expression <%# %>, comme utilisé dans la liaison de données standard ASP.NET.
Cette méthode est particulièrement utile lors de la liaison de données à des contrôles qui se trouvent dans une liste de modèles.
Note
Étant donné que cette méthode effectue une évaluation à liaison tardive, à l’aide de la réflexion au moment de l’exécution, les performances peuvent ralentir sensiblement par rapport à la syntaxe de liaison de données standard ASP.NET.
Pour l’un des contrôles Web de liste, tels que GridView, , DetailsView, DataListou Repeater, container doit être Container.DataItem. Si vous êtes en liaison avec la page, container doit être Page.
À partir de .NET Framework 4.5, vous pouvez utiliser la liaison de modèle pour simplifier certaines des tâches que vous deviez effectuer via la liaison de données dans les versions antérieures. Pour obtenir une série de tutoriels sur l’utilisation de la liaison de modèle avec Web Forms, consultez Liaison de modèle et Web Forms.
Voir aussi
S’applique à
Eval(Object, String, String)
Évalue les expressions de liaison de données au moment de l’exécution et met en forme le résultat sous forme de chaîne.
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
Paramètres
- container
- Object
Référence d’objet par rapport à laquelle l’expression est évaluée. Il doit s’agir d’un identificateur d’objet valide dans la langue spécifiée de la page.
- expression
- String
Chemin de navigation de l’objet container à la valeur de propriété publique à placer dans la propriété de contrôle liée. Il doit s’agir d’une chaîne de noms de propriété ou de champs séparés par des points, tels que Tables[0].DefaultView.[0].Price en C# ou Tables(0).DefaultView.(0).Price dans Visual Basic.
- format
- String
Chaîne de format .NET Framework (comme celles utilisées par Format(String, Object)) qui convertit l’instance Object retournée par l’expression de liaison de données en objet String.
Retours
Objet String qui résulte de l’évaluation de l’expression de liaison de données et de sa conversion en type de chaîne.
Exemples
Les exemples suivants montrent comment utiliser la Eval méthode pour lier des données au Repeater contrôle. Elle nécessite une classe de données nommée 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
Le fichier code-behind charge les données de test et lie ces données à un Repeater contrôle.
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
Dans la syntaxe déclarative du Repeater contrôle, vous utilisez la Eval méthode avec Container.DataItem pour le container paramètre.
<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>
Vous pouvez également appeler Eval la fonction et ne pas inclure le container paramètre.
<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>
Remarques
La valeur de expression doit être évaluée à une propriété publique.
Pour plus d’informations sur les chaînes de format dans .NET Framework, consultez Formatting Types.
Cette méthode est automatiquement appelée lorsque vous créez des liaisons de données dans un concepteur de développement d’applications rapide (RAD) tel que Visual Studio. Vous pouvez également l’utiliser de manière déclarative pour convertir le résultat de l’expression Object de liaison de données en un String. Pour utiliser la méthode de manière déclarative, utilisez la syntaxe d’expression <%# %>, comme utilisé dans la liaison de données standard ASP.NET.
Cette méthode est particulièrement utile lors de la liaison de données à des contrôles qui se trouvent dans une liste de modèles.
Note
Étant donné que cette méthode effectue une évaluation à liaison tardive, à l’aide de la réflexion au moment de l’exécution, les performances peuvent ralentir sensiblement par rapport à la syntaxe de liaison de données standard ASP.NET. Utilisez cette méthode judicieusement, en particulier lorsque la mise en forme de chaîne n’est pas requise.
Pour l’un des contrôles Web de liste, tels que GridView, , DetailsView, DataListou Repeater, container doit être Container.DataItem. Si vous êtes en liaison avec la page, container doit être Page.
À partir de .NET Framework 4.5, vous pouvez utiliser la liaison de modèle pour simplifier certaines des tâches que vous deviez effectuer via la liaison de données dans les versions antérieures. Pour obtenir une série de tutoriels sur l’utilisation de la liaison de modèle avec Web Forms, consultez Liaison de modèle et Web Forms.