• 博客园logo
  • 会员
  • 众包
  • 新闻
  • 博问
  • 闪存
  • 赞助商
  • HarmonyOS
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录

奋斗中...

曾经的程序员。ASP.NET/C#, JavaScript, PL/SQL, T-SQL; 工具: VS2003/2005, Oracle, SQLServer; 偶尔写点CSS, 批处理.
头脑中经常有新想法, 可惜没有去实现.
Never give up.
Never get into a fight with a pig. Both of you will get dirty. But the pig actually enjoys it.
  • 博客园
  • 联系
  • 订阅
  • 管理

公告

View Post

[翻译][.NET Tip of The Day]使用显式转换替代DataBinder.Eval

英文原文: http://dotnettipoftheday.org/tips/use-explicit-casting-instead-of-databinder.eval.aspx

 

使用显式转换替代DataBinder.Eval(Use explicit casting instead of DataBinder.Eval)

DataBinder.Eval 方法使用 .NET 反射(reflection) to evaluate the arguments that are passed in and to return the results. 考虑在数据绑定操作中尽量少地使用DataBinder.Eval, 以便提升 ASP.NET 页面性能.

考虑下面 Repeater 控件中 ItemTemplate 元素(element)  使用 DataBinder.Eval:

   <ItemTemplate>

       <tr>

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

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

       </tr>

   </ItemTemplate>

通过显式转换(explicit casting)来避免 .NET 反射的开销能得到更好的性能. 转换Container.DataItem 为 DataRowView:

   <ItemTemplate>

       <tr>

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

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

       </tr>

   </ItemTemplate>

 

2/12/2008

 

 

 

posted on 2010-01-12 22:27  jes  阅读(176)  评论(0)    收藏  举报

刷新页面返回顶部
 
博客园  ©  2004-2025
浙公网安备 33010602011771号 浙ICP备2021040463号-3