强类型ASP.NET数据绑定改进版之第2版
2011-01-30 15:59
447 查看
之前的方法存在一个问题:
Ivony...说:“每个类型都去写个Eval方法也很不爽的。”
Kingthy说:“这样就到处有Func了,会不会太过头了?”
李永京说:“在项目中任何地方都要使用的方法,应该收集在Core级别的Dll中写成扩展方法。”
如果用扩展方法解决这个问题,我们将面临新的问题,请看扩展方法:
这个问题就是在调用时,需要指定返回类型,比如:
可以采用另外一种方法解决这个问题,代码如下:
调用代码如下:
还有更好的解决方法吗?我目前只能找到这个方法,我觉得理想的调用方法应该是:
Ivony...说:“每个类型都去写个Eval方法也很不爽的。”
Kingthy说:“这样就到处有Func了,会不会太过头了?”
李永京说:“在项目中任何地方都要使用的方法,应该收集在Core级别的Dll中写成扩展方法。”
如果用扩展方法解决这个问题,我们将面临新的问题,请看扩展方法:
public static class Binder { public static TResult Eval<TEntity, TResult>(this System.Web.UI.Page p, Func<TEntity, TResult> func) { return func((TEntity)p.GetDataItem()); } }
这个问题就是在调用时,需要指定返回类型,比如:
<%# this.Eval<NewsInfo, string>(n => n.Title) %>
可以采用另外一种方法解决这个问题,代码如下:
public static class Binder<TEntity> where TEntity : class { public static TResult Eval<TResult>(System.Web.UI.Page p, Func<TEntity, TResult> func) { return func((TEntity)p.GetDataItem()); } }
调用代码如下:
<%# Binder<NewsInfo>.Eval(this, n => n.Title) %>
还有更好的解决方法吗?我目前只能找到这个方法,我觉得理想的调用方法应该是:
<%# Eval<NewsInfo>(n => n.Title)%>
相关文章推荐
- 一起谈.NET技术,强类型ASP.NET数据绑定改进版之第2版
- 一起谈.NET技术,强类型ASP.NET数据绑定改进版
- 强类型ASP.NET数据绑定改进版
- 强类型ASP.N“.NET研究”ET数据绑定改进版之第2版
- 强类型ASP.NET数据绑定改进“.NET研究”版
- 一起谈.NET技术,教你30秒打造强类型ASP.NET数据绑定
- 强类型ASP.NET数据绑定
- ASP.NET 4.5新特性一:强类型数据绑定(Strongly-Type Data-Bindings)
- asp.net mvc源码分析-DefaultModelBinder 自定义的普通数据类型的绑定和验证
- asp.net mvc源码分析-DefaultModelBinder 自定义的普通数据类型的绑定和验证
- asp.net mvc源码分析-DefaultModelBinder 自定义的普通数据类型的绑定和验证
- 教你30秒打造强类型ASP.NET数据“.NET研究”绑定
- 教你30秒打造强类型ASP.NET数据绑定
- 教你30秒打造强类型ASP.NET数据绑定
- ASP.NET GridView 内嵌 DropDownList 绑定数据
- 使用ASP.NET AJAX异步调用Web Service和页面中的类方法:服务器端和客户端数据类型的自动转换:复杂类型
- asp.net数据绑定代码
- ASP.NET 2.0 中实现模板中的数据绑定系列(2)
- Asp.net--数据绑定控件DataList
- asp.net提示使用的 SQL Server 版本不支持数据类型“date”的解决办法: