extjs 3.31 TreeGrid实现静态页面加载json到TreeGrid里面
程序员文章站
2022-03-07 16:46:31
想要实现 treegrid的效果,打开官方例子却看不到效果,怎么办呢?我是这样实现的 复制代码 代码如下: var root = new ext.tree.treenode...
想要实现 treegrid的效果,打开官方例子却看不到效果,怎么办呢?我是这样实现的
var root = new ext.tree.treenode({
text: '根节点',
expanded: true
});
tree.setrootnode(root);
var nodes = {};
nodes.children = mydata;/*treegrid的json数据[{……},{……}]*/
function appendchild(node, o) {
if (o.children != null && o.children.length > 0) {
for (var a = 0; a < o.children.length; a++) {
var n = new ext.tree.treenode({
task:o.children[a].task,
duration:o.children[a].duration,
user:o.children[a].user,
iconcls:o.children[a].iconcls
});
node.appendchild(n);
appendchild(n, o.children[a]);
}
}
}
appendchild(root, nodes);
看源码我们知道 treegrid 继承于 treepanel
所以 root 才是数据源而不是 store,
根据加载json数据到树的原理,同理我们可以这样加载json数据到 treegrid,而不再为dataurl: 'treegrid-data.json'这样的加载方式而烦恼了,是不是很简单呢?
复制代码 代码如下:
var root = new ext.tree.treenode({
text: '根节点',
expanded: true
});
tree.setrootnode(root);
var nodes = {};
nodes.children = mydata;/*treegrid的json数据[{……},{……}]*/
function appendchild(node, o) {
if (o.children != null && o.children.length > 0) {
for (var a = 0; a < o.children.length; a++) {
var n = new ext.tree.treenode({
task:o.children[a].task,
duration:o.children[a].duration,
user:o.children[a].user,
iconcls:o.children[a].iconcls
});
node.appendchild(n);
appendchild(n, o.children[a]);
}
}
}
appendchild(root, nodes);
看源码我们知道 treegrid 继承于 treepanel
所以 root 才是数据源而不是 store,
根据加载json数据到树的原理,同理我们可以这样加载json数据到 treegrid,而不再为dataurl: 'treegrid-data.json'这样的加载方式而烦恼了,是不是很简单呢?