如何获取Ext tree里面的JSON格式数据?

无双Rama 2010-12-17
我现在有一个树的对象,我想在页面中编辑它,然后当我点击确定按钮的时候,我想把它里面的每个节点的text获取到,以json的格式或者其它的形式也行。有没有直接的方法可以实现呢?请各位大牛指点指点
无双Rama 2010-12-18
获取一两个属性是可以通过遍历来解决的,但是如果要得到整个tree的json格式数据保存在cookie里面,用于下次再次读取。如何做呢?
TonyLian 2010-12-20
1)获得tree控件的root属性(或者root的children),是个json对象
2)var str = Ext.util.JSON.encode(myTree.root); 把它转成字符串
3)把str存到cookie里
4)下次从cookie中读出str
5)myTree.root = Ext.util.JSON.decode(str);

原理就是把JSON对象转换(序列化)为字符串,用以保存,用的时候再反序列化回来
同理,保存的DB的一个大字段也可以。

如果保存在XML格式就不用encode/decode了,Ext提供了XMLTreeLoader。

不知道你想要的是不是这个。
无双Rama 2010-12-22
TonyLian 写道
1)获得tree控件的root属性(或者root的children),是个json对象
2)var str = Ext.util.JSON.encode(myTree.root); 把它转成字符串
3)把str存到cookie里
4)下次从cookie中读出str
5)myTree.root = Ext.util.JSON.decode(str);

原理就是把JSON对象转换(序列化)为字符串,用以保存,用的时候再反序列化回来
同理,保存的DB的一个大字段也可以。

如果保存在XML格式就不用encode/decode了,Ext提供了XMLTreeLoader。

不知道你想要的是不是这个。


谢谢你提供的方法,Ext.util.JSON.encode()确实能够把传入的参数变成一个tree结构的json,用这个方法它报:too much recursion 错
(function(){var h=Ext.util,k=Ext.each,g=..."dblclick",this.onNodeDblClick,this)}});,
不知道如何解决呀
是不是我的 root:{nodeType: 'async',..}造成的呢?
TonyLian 2010-12-27
Ext这东西就得多试。
几乎很少有一次书写的代码就通过的,还是自己多调试一下吧。

一般Tree的Node都用AsyncTreeNode的,再多看看API中的事例吧。
TonyLian 2010-12-27
too much recursion
是你的调用死循环了。或许是哪一句使Ext内核里的代码死循环了,
逐一注掉每一行代码定位吧。
Global site tag (gtag.js) - Google Analytics