数据绑定是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是必须的。