DataBinder.eval을 사용할 때 데이터 소스(Dataread 또는 데이터 세트)에 대해 걱정할 필요가 없습니다. 데이터 유형에 대해 걱정할 필요가 없습니다. eval은 이 데이터 객체를 문자열로 변환합니다. 리플렉션 기능을 사용하여 기본 바인딩에 대한 많은 작업이 수행되었습니다. 사용하기 편리하다는 이유만으로 데이터 성능에 영향을 미치게 됩니다. 데이터 세트에 바인딩되면 DataItem은 실제로 DataRowView입니다(데이터 판독기(dataread)에 바인딩된 경우 IdataRecord입니다.) 따라서 DataRowView로 직접 변환하면 성능이 크게 향상됩니다.
사용 시 참고 사항: 1. 필드 이름의 대소문자에 주의하세요(특별한 주의). 쿼리와 일치하지 않는 경우 <%# DataBinder.Eval(Container.DataItem, "field name") %>보다 속도가 느려지는 경우도 있습니다. 2. 속도를 더욱 향상시키려면 <%# ((System.Data.DataRowView)Container.DataItem)[0] %> 메서드를 사용할 수 있습니다. 하지만 가독성은 높지 않습니다.
//DataSet을 데이터 소스로 사용하는 경우
//정상 상황(C#)
<%# ((System.Data.DataRowView)Container.DataItem)["Title"] %>
//날짜 필드 형식 문자열 바인딩
<%# Convert.ToDateTime(((System.Data.DataRowView)Container.DataItem)
["FbTime"]).ToString("yyyy 년 MM 월 dd 일") %>
<% # DataBinder .Eval(컨테이너, "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("제목") %>
http://www.cnblogs.com/wintersun/archive/2006/08/11/474135.html