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
Eval(Object, String) |
Évalue des expressions de liaison de données XPath au moment de l'exécution. |
Eval(Object, String, String) |
Évalue les expressions de liaison aux données au moment de l'exécution et met en forme le résultat sous forme de chaîne. |
Remarques
À compter 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 des expressions de liaison de données XPath 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 à partir de l'objet container
jusqu'à la valeur de propriété à placer dans la propriété du contrôle lié. Il doit s’agir d’une propriété de type chaîne ou de noms de champs séparés par des points, par exemple Tables[0].DefaultView.[0].Price
en C# ou Tables(0).DefaultView.(0).Price
en Visual Basic.
Retours
Instance de Object qui résulte de l'évaluation de l'expression de liaison aux données.
Exceptions
expression
est null
ou une chaîne vide ("") après rognage.
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, telle qu’elle est utilisée 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 modèle.
Notes
Étant donné que cette méthode effectue une évaluation à liaison tardive, à l’aide de la réflexion au moment de l’exécution, elle peut entraîner un ralentissement notable des performances par rapport à la syntaxe de liaison de données standard ASP.NET.
Pour l’un des contrôles Web de liste, tels que GridView, , DataListDetailsViewou , container
doit Repeaterêtre Container.DataItem
. Si vous effectuez une liaison avec la page, container
doit être Page
.
À compter 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 aux 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 à partir de l'objet container
jusqu'à la valeur de propriété à placer dans la propriété du contrôle lié. Il doit s’agir d’une propriété de type chaîne ou de noms de champs séparés par des points, par exemple Tables[0].DefaultView.[0].Price
en C# ou Tables(0).DefaultView.(0).Price
en Visual Basic.
- format
- String
Chaîne de format .NET Framework (comme celles utilisées par Format(String, Object)) qui convertit l'instance de Object retournée par l'expression de liaison aux données à un objet String.
Retours
Objet String qui résulte de l'évaluation de l'expression de liaison aux données et de sa conversion en un type 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 le .NET Framework, consultez Types de mise en forme.
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 Object résultat de l’expression de liaison de données en un String. Pour utiliser la méthode de manière déclarative, utilisez la <%# %>
syntaxe d’expression, telle qu’elle est utilisée 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 modèle.
Notes
Étant donné que cette méthode effectue une évaluation à liaison tardive, à l’aide de la réflexion au moment de l’exécution, elle peut entraîner un ralentissement notable des performances 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 nécessaire.
Pour l’un des contrôles Web de liste, tels que GridView, , DataListDetailsViewou , container
doit Repeaterêtre Container.DataItem
. Si vous effectuez une liaison avec la page, container
doit être Page
.
À compter 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.