您的位置:首页 > 其它

Dojo中的LazyTreeGrid控件

2012-05-17 15:24 381 查看
数据呈现是RIA应用中的一个重点应用,各种JavaScript框架也一般都提供了自己的Grid小部件用于呈现表格类数据。而TreeGrid 作为一种特殊的Grid,顾名思义,更是兼具了Tree多层级结构以及Grid的多数据项复杂数据展示的优点,是一种很好的处理复杂多级数据的控件。然 而,无论对于Tree或者TreeGrid,通常由于实现方面的种种限制,对数据的延迟加载只能是针对层级结构而言的,即在展开某一节点时即时请求该节点 下的全部子节点。尽管这对于一般的应用场景来说基本可以满足需求,但在当次级节点下数据结构较复杂,节点繁多的情况下,则可能造成极其严重的性能问题。针 对这一特定需求,Dojo从1.6开始推出了一个全新的控件——LazyTreeGrid。

LazyTreeGrid的结构

作为Dojo DataGrid的扩展,LazyTreeGrid在整体的数据结构上采用的仍然是MVC结构。

View Code

// 创建LazyTreeGrid
var grid;
dojo.addOnLoad(function () {
grid = new dojox.grid.LazyTreeGrid({
id: "grid",
rowSelector: true,
treeModel: treeModel,
structure: layout,
colSpans: {
0: [{
start: 0,
end: 1
}, & nbsp; {
start: 2,
end: 3,
primary: 2
}]
}
});
dojo.byId('gridContainer').appendChild(grid.domNode);
grid.startup();
});


至此,我们已经完成了LazyTreeGrid的页面创建工作,接下来的工作就是创建合适的后台代码来正确响应LazyTreeGrid的数据请求。

小结

作为Dojo1.6新引入的一个Widget,尽管LazyTreeGrid仍有很多亟待解决的缺陷或问题,如尚不支持初始化及运行时的 Expand/Collapse All的功能、可调用API较少等,但它作为一种呈现复杂多层级数据的RIA应用小部件,其对于延迟加载与延迟渲染方面所提出的解决方案还是具有一定的突 破性的,具有这方面应用要求的用户不妨一试。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: