由Ext提供的treeGrid需要通过dataUrl或者loader去加载数据,可是如果数据为静态的,在页面上生成的,那就无法显示,为了解决这个问题,需要重写loader的几个方法,具体如下,
loader : new Ext.ux.tree.TreeGridLoader({
loadData: function (node, callback, scope) {
var o = obj.data; //真正的数据在这里
node.beginUpdate();
for(var i = 0, len = o.length; i < len; i++){
var n = this.createNode(o[i]);
if(n){
node.appendChild(n);
}
}
node.endUpdate();
this.runCallback(callback, scope || node, [node]);
},
handleFailure : function(response){
var a = response.argument;
this.loadData(a.node, a.callback, a.scope);
},
dataUrl : '${pageContext.request.contextPath}/treegrid.json'
})
效果如下