TLDR --我希望我的EXTJS树能记住它以前的设置。ExtJS-3.2.1
我以前见过ExtJS-2.x.x :参见这里的extjs论坛。这样做。
但正如他们所看到的,他们几乎没有生命,在那里的线程提出这个问题或类似的,没有答复长达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吗?
发布于 2010-05-27 16:10:49
我知道这并不能完全回答你所有的问题,但我最近做了这件事,主要是在服务器端。需要知道的关键是,即使使用AsyncTreeNodes,仍然可以在节点中检查children属性,该属性将包含另一个节点数组。
因此,在我的TreeLoader实例调用的TreePanel URL函数中,我确保保存正在加载到数据库中的节点的“路径”(重点是将此状态保持在服务器上)。所以我在数据库中保存了加载节点的级别和值,以及它的父节点。
为此,我向加载器beforeLoad事件添加了一个侦听器,并在加载程序的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的单击事件或其他东西来保存该信息。
当然,这不会处理我认为正在使用的复选框,但是如果您侦听了正确的事件,您可以对服务器进行回调,以保存此信息,然后将checked属性添加到初始JSON中的子节点。希望这能有所帮助!
https://stackoverflow.com/questions/2918563
复制相似问题