Asp.Net一种更加优雅的数据绑定方法

数据绑定是asp.net页面开发过程中经常需要运用的技术,通常的做法是利用Eval(),DataBind()等方法将后台对象的属性与前台页面绑定,但是这样做有以下三个很明显的缺点:

1)前台语法形式复杂,不方便

2)无法自由拼接想要的字符串。必须在后台为适应前台的显示额外定义属性,不合理。

3)无法享受智能提示

 

最近在网上看到了一篇文章,里面介绍了一种数据绑定的方法,在此推荐一下。

首先声明一个静态类,定义扩展方法。

public static class Helper

{

  static object ExpHelper<TEntity,TResult>(Page page, Func<TEntity,TResult> fun)

  {

    var itm = page.GetDataItem();
       
return func((TEntity)itm);

  }

  public static object Eval<T>(this Page page,Func<T,object> fun)

  {

    return ExpHelper(page,fun);

  }

 

}

 

 

在页面中就可以

<%#this.Eval<Student>(_ => _.Name + "(" + _.Age + ")")%>

注意this是必须的。

posted on 2011-01-31 16:08  Chrisnda  阅读(213)  评论(1编辑  收藏  举报

导航