ExtJs4.X treeStore.load() 刷新问题

u011001266 2013-06-08 12:49:45
先上代码

/** userTree info begin**/
var treeStore = Ext.create('Ext.data.TreeStore', {
proxy: {
type: "ajax",
url: "../../queryUserTreeOfAreaAction.action",
reader: {
type: 'json',
}
},
autoLoad:true
});

/** userCombobox info end **/
var assignCombobox = Ext.create('Ext.form.ComboBox', {
name:'assignComboboxId',
store: areaStore,
width:150,
emptyText:'请选择用户',
queryMode: 'local',
displayField: 'name',
hiddenName: 'id',
valueField: 'id'
});

/**tree menu info begin **/
var assigningTree = new Ext.tree.TreePanel({
border:false,
store:treeStore,
rootVisible:false,
animate : true,
root : {
lines:true,
useArrows: true,
expanded : false
},
listeners:{
itemcontextmenu : function(his, record, item, index, e) {
if(true==record.data.leaf){
e.preventDefault();
e.stopEvent();
var _leaf = record.data.leaf;
var _id = record.data.id;
var _text = record.data.text;
var array = [{
text : '查看基本信息',
iconCls:'assignSearch',
handler : function(){
infoWinFormPanel.setTitle(_text+"::基本信息");
infoWinFormOpen(1);
}
}];
var nodemenu = new Ext.menu.Menu({
items:array
});
nodemenu.showAt(e.getXY());
}

}
}
});
/** select combobox begin**/
areaId = assignCombobox.getValue();
treeForm.setTitle('查看'+name+'用户信息');
Ext.Ajax.request({
url:'../../queryUserTreeOfAreaAction.action',
method:'post',
params:{
areaId:areaId
},
success:function(req){
assigningTree.getStore().load();// var assigningTree =
}
});
步骤,
页面初始化不加载树,
之后选择用户Combobox,-->>/** userCombobox info end **/
之后点击查询按钮,执行-->>/** select combobox begin**/这一步 areaId 是用户的id号,
之后根据areaId向数据库查找,
执行 assigningTree.getStore().load();
返回过来的是json串是正常的(在静态tree下可以显示。)
但assigningTreePanel里依然没有数据, /**tree menu info begin **/ 无数据。
请教高手,帮帮忙。
...全文
535 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
HOHOHOHOHOH 2015-01-31
  • 打赏
  • 举报
回复
var recode = treeStore.getById(id);//需要重新加载节点的Id treeStore.reload({node:recode}); 要使用TreeSotre,在reload中指定加载节点的recode即可。
你想找事 2014-08-27
  • 打赏
  • 举报
回复
楼主乃神人也。跟大家猜谜语呢。还不贴答案。
yasz1 2013-07-29
  • 打赏
  • 举报
回复
不知道楼主怎么解决的刷新问题,我也出现了一个数据刷新问题,楼主知道怎么解决吗?
 onRender: function(){
this.getBookStore().load();
alert('2');//如果没有这句,数据不能刷新出来
}
u011001266 2013-06-08
  • 打赏
  • 举报
回复
自己弄出来了。
u011001266 2013-06-08
  • 打赏
  • 举报
回复
我要的功能是,选择不同的ID,反回过来的tree是不一样的,在beforeload事件里我也试了,但还是不行。 莫非是我写错了?

       append: function( thisNode, newChildNode, index, eOpts ) {         
            if( !newChildNode.isRoot() ) {
                newChildNode.set('leaf', true);
                newChildNode.set('text', newChildNode.get('name'));
                newChildNode.set('icon', newChildNode.get('profile_image_url'));
                newChildNode.set('cls', 'demo-userNode');
                newChildNode.set('iconCls', 'demo-userNodeIcon');
            }
        }
程序媛小李 2013-06-08
  • 打赏
  • 举报
回复
可以重新加载tree的数据, // parentNode.set('expanded', false);//节点更新 // parentNode.set('loading', false); // parentNode.set('loaded', false); // parentNode.expand(); 在store中添加boforeload事件监听,在load时传入你获取的combobox参数,parentNode为tree的跟节点

87,907

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧