TLDR 我希望EXTJS的treepanel能够记住以前的设置。 ExtJS的-3.2.1
我之前已经看过ExtJS-2.x.x:See here on the extjs forums。
但是看起来他们几乎没有生气,有线程在那里提出这个问题或类似的问题而且没有回复长达6个月。我以为我会把它带到这里。
我需要能够让我的treePanel记住以前打开的文件夹以及检查哪些框。它是异步treePanel。请注意,这是所有客户端脚本。
小组如下:
var layerTree = new Ext.tree.TreePanel({
border: true,
region: "east",
title: 'LayersTree',
width: 250,
split: true,
collapsible: true,
collapsed: true,
iconCls: 'treePanelIcon',
enableDD: true,
autoScroll: true,
//pulls in layers and their attributes//
root: new Ext.tree.AsyncTreeNode({ leaf: false,
loaded: false,
expanded: true,
text: 'Tree Root',
children: treeLayers
})
使用ExtJS-3.2.1,GeoExt,OpenLayers。
之前有人这样做过或者知道怎么做? (在extjs-3.2.1中)
(最好使用插件,但感谢任何答案)
任何人都知道如何使用extjs的保存状态函数绑定到cookie?
答案 0 :(得分:1)
我知道这不会完全回答你的所有问题,但我最近在服务器方面做了大部分工作。要知道的关键是,即使您使用AsyncTreeNodes,您仍然可以在节点中指定将包含另一个节点数组的children
属性。
因此,在我的TreePanel的TreeLoader实例调用的URL函数中,我确保保存正在加载的节点的“路径”(我们的意思是在服务器上保持这种状态)。所以我在那个数据库中保存了加载节点及其父节点的级别和值。
为此,我在loaderLoad事件中添加了一个监听器,并在loader的baseParams属性中设置了该信息。
然后我做了这个,以便加载程序调用的服务器上的这个相同的函数,如果加载根节点的子节点,也将递归调用自己来收集子节点(基于我保存在数据库中的内容)。因此,返回到根节点的加载器的实际JSON如下所示:
[
{
"x3id": "",
"text": "[blank value]",
"iconCls": "",
"leaf": false,
"expanded": true,
"children": [
{
"x3id": "",
"text": "[blank value]",
"iconCls": "",
"leaf": false,
"expanded": true,
"children": [
{
"x3id": "",
"text": "[blank value]",
"iconCls": "",
"leaf": false,
"expanded": true,
"children": [
{
"x3id": false,
"text": "False",
"iconCls": "",
"leaf": false,
"expanded": true,
"children": [
{
"x3id": 0,
"text": "0",
"iconCls": "fakeleaf",
"leaf": true,
"expanded": true,
"children": [
],
"expandable": false
},
{
"x3id": 1,
"text": "1",
"iconCls": "fakeleaf",
"leaf": true,
"expanded": true,
"children": [
],
"expandable": false
}
]
}
]
}
]
}
]
},
{
"x3id": "Wed, 19 May 2010 16:17:00 -0400",
"text": "05/19/2010 04:17:00 PM",
"iconCls": "",
"leaf": false,
"expanded": false,
"children": ""
}
]
请注意,状态将仅记住最后“加载”的节点,不一定是最后选择和/或打开的节点。为此,您必须收听TreePanel的click事件或其他内容以保存该信息。
所以当然这不会处理我认为你正在使用的复选框,但是如果你听正确的事件,你可以回调服务器来保存这些信息,然后添加checked
属性在最初的JSON中给孩子们。
希望这有帮助!