티스토리 뷰

 DataBinder.Eval 매서드는 전송되거나 반환되는 인자를 알아내기 위해 .NET reflection 사용한다.

ASP.NET페이지의 성능을 개선하기 위해 데이터 바인딩을 수행하는 동안 DataBinder.Eval 사용을 자제하자.

DataBinder.Eval 사용한 기존 방식

<ItemTemplate>

<tr>

         <td><%# DataBinder.Eval(Container.DataItem, "field1") %></td>

         <td><%# DataBinder.Eval(Container.DataItem, "field2") %></td>

</tr>

</ItemTemplate>


명시적인 캐스팅(Container.DataItem DataRowView 캐스팅) .NET reflection 사용하지 않기 때문에 보다 나은 성능을 낸다.

<ItemTemplate>

     <tr>

         <td><%# ((DataRowView)Container.DataItem)["field1"] %></td>

         <td><%# ((DataRowView)Container.DataItem)["field2"] %></td>

     </tr>

</ItemTemplate>

출처: http://dotnettipoftheday.org/tips/use-explicit-casting-instead-of-databinder.eval.aspx