在ExtJs4中,对于treepanel增加节点后应该如何刷新? 10

在ExtJs4的api中,以下方式创建一棵树。varstore=Ext.create('Ext.data.TreeStore',{root:{expanded:true,... 在ExtJs4的api中,以下方式创建一棵树。
var store = Ext.create('Ext.data.TreeStore', {
root: {
expanded: true,
children: [
{ text: "detention", leaf: true },
{ text: "homework", expanded: true, children: [
{ text: "book report", leaf: true },
{ text: "algebra", leaf: true}
] },
{ text: "buy lottery tickets", leaf: true }
]
}
});

Ext.create('Ext.tree.Panel', {
title: 'Simple Tree',
width: 200,
height: 150,
store: store,
rootVisible: false,
renderTo: Ext.getBody()
});
如果这样的方式创建的树,添加节点后,用网上说的
me.getStore().reload();
tree.root.reload();
之类常规的刷新方法都不管用,请问该如何刷新?
展开
 我来答
JGH1023360745
2013-08-16 · TA获得超过527个赞
知道小有建树答主
回答量:228
采纳率:94%
帮助的人:89.8万
展开全部
数据绑定
tree.on('beforeload', function (node) {
node.select();
tree.loader.dataUrl = 'UnitsList.aspx?cmd=getTree&ID=' + node.id + '&rd=' + Math.random(); //定义子节点的Loader
});

GetTree只用查询 ParentID=ID 的数据 返回即可

添加之后 刷新
if (tree.getSelectionModel().getSelectedNode() == null || tree.getSelectionModel().getSelectedNode().id == null) {
tree.root.reload();
} else {
tree.getNodeById(tree.getSelectionModel().getSelectedNode().id).reload();
}
更多追问追答
追问
tree.root.reload();

tree.getNodeById(tree.getSelectionModel().getSelectedNode().id).reload();

提示不是一个方法,是不是大侠你的这种方式适合proxy重加载的?
我这种一开始就取出了所有数据加载页面的该如何处理呢?
追答
提示reload 不是一个方法
可能你的根节点不是 nodeType: 'async',
或者其他子节点的 leaf: true 你设置的不是true

一开始加载的也无所谓 你无非是想修改后刷新此节点或者刷新此节点的父节点
获取到此节点或者此节点的父节点刷新一下即可
前提是根节点必须是 'async'
root: {
nodeType: 'async',
..
}
而且子节点必须是leaf: true
因为必须是“静态树”才有reload()方法
当然子节点默认leaf就是true 根节点需要你写上面这个属性
du瓶邪
推荐于2016-06-07 · TA获得超过2.4万个赞
知道大有可为答主
回答量:1.7万
采纳率:100%
帮助的人:2865万
展开全部
添加之后刷新
if (tree.getSelectionModel().getSelectedNode() == null || tree.getSelectionModel().getSelectedNode().id == null) {
tree.root.reload();
} else {
tree.getNodeById(tree.getSelectionModel().getSelectedNode().id).reload();
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
FuN哥
2013-08-15 · TA获得超过798个赞
知道答主
回答量:183
采纳率:0%
帮助的人:74.9万
展开全部
你数据都是写死的,怎么刷新都刷不出个花来的。除非你改变了数据
更多追问追答
追问
改变了数据的,我通过构造新store后也不改变,请问这个该如何处理呢?
追答
代码发上来。你这代码store根本没配置proxy,哪里从后台来数据啊
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
bourne_scl
2013-08-15 · TA获得超过609个赞
知道小有建树答主
回答量:603
采纳率:0%
帮助的人:368万
展开全部
store.load();
追问
用了,也不管用呢
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式