При использовании DataBinder.eval вам не нужно беспокоиться об источнике данных (Dataread или набор данных). Вам не нужно беспокоиться о типе данных. eval преобразует этот объект данных в строку. Большая работа была проделана над базовой привязкой с использованием возможностей отражения. Просто потому, что его удобно использовать, это влияет на производительность данных. При привязке к набору данных DataItem фактически является DataRowView (если он привязан к устройству чтения данных (dataread), это IdataRecord). Поэтому непосредственное преобразование его в DataRowView значительно повысит производительность.
Примечание при использовании: 1. Обратите внимание на регистр названий полей (обратите особое внимание). Если он несовместим с запросом, в некоторых случаях он будет медленнее, чем <%# DataBinder.Eval(Container.DataItem, "имя поля") %>. 2. Если вы хотите еще больше повысить скорость, вы можете использовать метод <%# ((System.Data.DataRowView)Container.DataItem)[0] %>. Однако читаемость его не высока.
//При использовании DataSet в качестве источника данных
//Нормальная ситуация (C#)
<%# ((System.Data.DataRowView)Container.DataItem)["Title"] %>
//Привязка формата поля даты
<%# Convert.ToDateTime(((System.Data.DataRowView)Container.DataItem)
["FbTime"]).ToString("гггг год ММ месяц дд день") %>
<% # DataBinder .Eval(Container, "DataItem.FbTime","{0:yyyyMMmonthddDay}") %>
//Привязка строки превышает указанную длину и усекается
<%# 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() %>
//Преобразуем цену в 2 десятичных знака
<%# Convert.ToDecimal(((System.Data.DataRowView)Container.DataItem) ["Price"]).ToString("F2") %>
<%# DataBinder.Eval ( Контейнер, "DataItem.Price","{0:F2}") %>
'Судить после форматирования цен в VB.net
<%# IIf(DataBinder.Eval(Container.DataItem, "price","{0:F2}")="0.00","Договорный",DataBinder.Eval(Container.DataItem, "price","{0: F2}")+"万") %>
'Vb.net Общие
<%# Ctype(Container.DataItem,DataRowView).Row("Title") %>
http://www.cnblogs.com/wintersun/archive/2006/08/11/474135.html