FineUI 官方论坛
标题:
Grid模板列如何使用Eval和Bind绑定数据
[打印本页]
作者:
大石头
时间:
2012-4-1 22:42
标题:
Grid模板列如何使用Eval和Bind绑定数据
今天开始使用ExtAspNet,发现一个也许可以改进的地方。
在Grid中,模板列绑定数据源得这样:
DataBinder.Eval(Container.DataItem, "IsEnable")而不能直接使用常用的Eval("IsEnable")
经查阅源码,可修改如下:
1,Grid.cs第2131行,
row.DataBindRow();
改为row.DataBind();,采用普通的绑定
2,GridRow.cs第194行,增加DataBindChildren重载:
protected
override
void
DataBindChildren(){
base
.DataBindChildren(); DataBindRow();}
原理如下:
Eval("IsEnable")其实是跟DataBinder.Eval(Container.DataItem, "IsEnable")是一样的,
只不过需要获取当前容易的数据项,也就是Container.DataItem。
而AspNet数据绑定的规则就是在每一个层次把当前数据项存入一个栈中,执行Eval时,实际上就是取这个栈顶元素来执行绑定。
关于这个栈,在DataBind的控制之下,开始就把当前容器的DataItem入栈,最后出栈,中间就是子控件的绑定啦,
所以这里需要重载 DataBindChildren
BTW:要是能获得CodePlex授权直接更新ExtAspNet就好了
作者:
sanshi
时间:
2012-4-2 23:39
多谢,已经修正。
这种提交问题的方式就很好啊,或者Upload Patch
作者:
大石头
时间:
2012-4-3 13:07
sanshi 发表于 2012-4-2 23:39
多谢,已经修正。
这种提交问题的方式就很好啊,或者Upload Patch
这个只是一个很小的修改,我用来举例子。
我们团队还给Grid和DropDownList增加了数据源支持,可以通过DataSourceID直接支持ObjectDataSource。
支持多条件高级查询、分页、排序、删除等操作,这些都不需要编写任何代码。
估计老大你太忙,我们只能自己建立了一个分支线,你们发布新版本的时候,我们再合并源码。
要是能把这些源码直接提交到你们的svn就好了。
欢迎光临 FineUI 官方论坛 (https://fineui.com/bbs/)
Powered by Discuz! X3.4