![]() DataGrid是很好用的.net web控件,TreeView也是,但是,尚无一个成熟的控件能够综合两者的长处以表达结构更复杂的数据。 Denis Bauer提供了一个他称为“Hierarchy Datagrid”的解决方案(http://www.denisbauer.com/ASPNETControls/HierarGrid.aspx),这个方案很好,但需要说明的是 1、这里实现的“Hierarchy Datagrid”和我们在vb 6中常用的MSHFlexGrid(即Microsoft Hierarchy Flexgrid)的结构并不是相同的。在MSHFlexGrid中,父层的项纵向并排,而子层跟在父层的右边(各层的各列称为一个Band)。而这个实现,子层是在父层的下面像TreeView相同展开,我觉得也许“TreeGrid”这样的名字更合适一些。 2、这里实现的“Hierarchy Datagrid”基本的思路是,每一层都做成一个User Control,而Denis Bauer的类,则提供了从Page到User Control的一个通用的调用方法。 3、这个实现一个不好的地方是,比较难以实现Edit的功能。因为父层只向子层传递DataSource,并不纪录子层中的状态,或说子Datagrid的EditItemIndex。 SVG兄实现了一个TreeView,他基本像一个DataGrid,但最左一列像TreeView,能够动态的展开。他的思路是用javascript+xmlhttp读取数据,然后用javascript写左边的列。写左边的列的过程,类似于Treeview的htc文档生成列的方法。这个方法的缺点是自己要写的代码比较多,而且修改子层数据的时候,不能利用DataGrid已实现的功能。 最近我的一个项目也提出了类似的需要,起初我是用Nested DataGrid做的,但是嵌套的各子层的DataGrid并不属于同一个DataGrid,他们各列之间无法对齐。后来突发奇想,实验了一个方法,成功了。 其实说穿了一点也不复杂。在msdn的文章“How to Build Tables Dynamically”(http://msdn.microsoft.com/workshop/author/tables/buildtables.asp)中已介绍,相对于DOM(Document Object Model),以
上一篇: asp.net正规表达式
下一篇: 给任何控件添加链接功能(原创)
相关评论 我也要评论
相关推荐主机赞助商连接:
华夏名网虚拟主机域名注册
关于我们 | 网站声明 | 联系我们 | 广告服务 IDC中文资讯站-客观公证的IDC产业权威媒体
|