Extjs有这样一个例子,下面是加载数据代码,但这里使用的是静态数据,我想换为动态加载,但不知道怎么办。
ApiPanel = function() {
ApiPanel.superclass.constructor.call(this, {
id:'api-tree',
region:'west',
split:true,
header: false,
width: 280,
minSize: 175,
maxSize: 500,
collapsible: true,
margins:'0 0 5 5',
cmargins:'0 0 0 0',
rootVisible:true,
lines:false,
autoScroll:true,
animCollapse:false,
animate: false,
collapseMode:'mini',
loader: new Ext.tree.TreeLoader({
preloadChildren: true,
clearOnLoad: false
}),
root: new Ext.tree.AsyncTreeNode({
text:'ROOT',
id:'root',
expanded:true,
children:[Docs.classData] }),
collapseFirst:false
});
// no longer needed!
//new Ext.tree.TreeSorter(this, {folderSort:true,leafAttr:'isClass'}); this.getSelectionModel().on('beforeselect', function(sm, node) {
return node.isLeaf();
});
};
ApiPanel = function() {
ApiPanel.superclass.constructor.call(this, {
id:'api-tree',
region:'west',
split:true,
header: false,
width: 280,
minSize: 175,
maxSize: 500,
collapsible: true,
margins:'0 0 5 5',
cmargins:'0 0 0 0',
rootVisible:true,
lines:false,
autoScroll:true,
animCollapse:false,
animate: false,
collapseMode:'mini',
loader: new Ext.tree.TreeLoader({
preloadChildren: true,
clearOnLoad: false
}),
root: new Ext.tree.AsyncTreeNode({
text:'ROOT',
id:'root',
expanded:true,
children:[Docs.classData] }),
collapseFirst:false
});
// no longer needed!
//new Ext.tree.TreeSorter(this, {folderSort:true,leafAttr:'isClass'}); this.getSelectionModel().on('beforeselect', function(sm, node) {
return node.isLeaf();
});
};
loader:new Ext.tree.TreeLoader({
url:"tree/treedata"
})
我这样改了以后可以取数据,但显示不了。
tree这样写:
xtype: "treepanel",
width: 130,
loader: new Ext.tree.TreeLoader({
url: "",
baseParams: {
action: "GetTreeNode"
}
}),
root: new Ext.tree.AsyncTreeNode({
text: "全部",
id: "0",
expanded: true
})
后台返回代码格式:
[{
"id": "2",
"text": "123",
"leaf": true,
"icon": "Ext/resources/images/default/tree/folder.gif",
"qtip": "123"
},
{
"id": "3",
"text": "456",
"leaf": true,
"icon": "Ext/resources/images/default/tree/folder.gif",
"qtip": "456"
}]