Sie müssen sich bei der Verwendung von DataBinder.eval keine Gedanken über die Datenquelle (Dataread oder Datensatz) machen. Sie müssen sich keine Gedanken über den Datentyp machen, der dieses Datenobjekt in einen String umwandelt. Es wurde viel Arbeit an der zugrunde liegenden Bindung geleistet, wobei Reflexionsfunktionen zum Einsatz kamen. Nur weil es bequem zu verwenden ist, wirkt es sich auf die Datenleistung aus. Wenn es an einen Datensatz gebunden ist, ist DataItem tatsächlich eine DataRowView (wenn es an einen Datenleser (Dataread) gebunden ist, ist es ein IdataRecord.) Daher wird die Leistung durch die direkte Konvertierung in eine DataRowView erheblich verbessert.
Beachten Sie bei der Verwendung: 1. Achten Sie auf die Groß-/Kleinschreibung von Feldnamen (besonders beachten). Wenn es nicht mit der Abfrage übereinstimmt, ist es in einigen Fällen langsamer als <%# DataBinder.Eval(Container.DataItem, "field name") %>. 2. Wenn Sie die Geschwindigkeit weiter verbessern möchten, können Sie die Methode <%# ((System.Data.DataRowView)Container.DataItem)[0] %> verwenden. Allerdings ist die Lesbarkeit nicht hoch.
//Bei Verwendung von DataSet als Datenquelle
//Normale Situation (C#)
<%# ((System.Data.DataRowView)Container.DataItem)["Title"] %>
//Datumsfeld-Formatzeichenfolge binden
<%# Convert.ToDateTime(((System.Data.DataRowView)Container.DataItem)
["FbTime"]).ToString("yyyy Jahr MM Monat dd Tag") %>
<% # DataBinder .Eval(Container, "DataItem.FbTime",{0:yyyyMMmonthddDay}") %>
//String-Bindung überschreitet die angegebene Länge und wird abgeschnitten
<%# DataBinder.Eval(Container.DataItem, "Text").ToString().Trim().Length>7?
DataBinder.Eval(Container.DataItem, "Text" ) .ToString().Trim().Substring
(0,7):DataBinder.Eval(Container.DataItem, "Text").ToString().Trim() %>
//Konvertieren Sie den Preis in 2 Dezimalstellen
<%# Convert.ToDecimal(((System.Data.DataRowView)Container.DataItem) ["Price"]).ToString("F2") %>
<%# DataBinder.Eval ( Container, „DataItem.Price“, „{0:F2}“) %>
'Beurteilen Sie nach der Preisformatierung in VB.net
<%# IIf(DataBinder.Eval(Container.DataItem, "price","{0:F2}")="0.00","Negotiable",DataBinder.Eval(Container.DataItem, "price","{0: F2}")+"万") %>
'Vb.net General
<%# Ctype(Container.DataItem,DataRowView).Row("Title") %>
http://www.cnblogs.com/wintersun/archive/2006/08/11/474135.html