Vous n'avez pas à vous soucier de la source de données (Dataread ou ensemble de données) lorsque vous utilisez DataBinder.eval. Vous n'avez pas à vous soucier du type de données. eval convertira cet objet de données en chaîne. Beaucoup de travail a été effectué sur la liaison sous-jacente, en utilisant les capacités de réflexion. Ce n’est pas parce qu’il est pratique à utiliser que cela affecte les performances des données. Lorsqu'il est lié à un ensemble de données, DataItem est en fait un DataRowView (s'il est lié à un lecteur de données (dataread), il s'agit d'un IdataRecord.) Par conséquent, le convertir directement en DataRowView améliorera considérablement les performances.
Remarque lors de l'utilisation : 1. Faites attention à la casse des noms de champs (faites particulièrement attention). S'il n'est pas cohérent avec la requête, dans certains cas, il sera plus lent que <%# DataBinder.Eval(Container.DataItem, "field name") %>. 2. Si vous souhaitez améliorer encore la vitesse, vous pouvez utiliser la méthode <%# ((System.Data.DataRowView)Container.DataItem)[0] %>. Cependant, sa lisibilité n'est pas élevée.
//Lors de l'utilisation de DataSet comme source de données
//Situation normale (C#)
<%# ((System.Data.DataRowView)Container.DataItem)["Title"] %>
// Lier la chaîne de format du champ de date
<%# Convert.ToDateTime(((System.Data.DataRowView)Container.DataItem)
["FbTime"]).ToString("aaaa année MM mois jj jour") %>
<% # DataBinder .Eval(Conteneur, "DataItem.FbTime","{0:aaaaMMmoisjjJour}") %>
//La liaison de chaîne dépasse la longueur spécifiée et est tronquée
Container.DataItem
, "Text").ToString().Trim().Length>7?
) .ToString().Trim().Substring
(0,7):DataBinder.Eval(Container.DataItem, "Text").ToString().Trim() %>
//Convertir le prix à 2 décimales
<%# Convert.ToDecimal(((System.Data.DataRowView)Container.DataItem) ["Price"]).ToString("F2") %>
<%# DataBinder.Eval ( Conteneur, "DataItem.Price","{0:F2}") %>
'Juge après le formatage des prix dans VB.net
<%# IIf(DataBinder.Eval(Container.DataItem, "price","{0:F2}")="0.00","Négociable",DataBinder.Eval(Container.DataItem, "price","{0: F2}")+"万") %>
'Vb.net Général
<%# Ctype(Container.DataItem,DataRowView).Row("Titre") %>
http://www.cnblogs.com/wintersun/archive/2006/08/11/474135.html