1
我有一个表单和一个面板树,当我提交这个表单时,我想用新添加的数据刷新我的树。如何在extjs4中重新加载树面板?
,所以这是我的形式 提交按钮代码(u能看到的一切我试过,其一团糟抱歉)
buttons: [{
text: 'Save',
handler: function() {
this.up('form').getForm().submit({
url: 'AddData.ashx',
params: { action: 'addasset' },
success: function (form, action) {
Ext.MessageBox.show({
title: 'Success !',
msg: 'Asset added successfully<br />',
icon: Ext.MessageBox.INFO
})
}
})
//refresh tree
// var at = Ext.getCmp('atree'); at.getLoader.load(at.getRootNode(Ext.decode(objt.TreeToJson())));
// ATreeStore.loadData(Ext.decode(objt.TreeToJson()));
// var at = Ext.getCmp('atree');
// at.getView().getTreeStore().setRootNode(at.getView().getTreeStore().getRootNode().getChildAt());
// at.getView().refresh();
// Ext.ComponentQuery.query('treepanel')[4].getStore().load();
// Ext.ComponentQuery.query('assettree')[0].setRootNode(Ext.decode(objt.AssetTreeToJson()));
// ATreeStore.setRootNode(ATreeStore.getRootNode().getChildAt());
// ATreeStore.load();
ATreeStore.setRootNode(Ext.decode(objt.TreeToJson()));
}
}, {
text: 'Cancel',
handler: function() {
this.up('form').getForm().reset();
}
}]
这里是我的树代码(不要对conext菜单,即时通讯担心仍然努力使工作)
window.ATreeStore = Ext.create('Ext.data.TreeStore', {
root: Ext.decode(objt.TreeToJson())
});
var myContextMenu = new Ext.menu.Menu({
items: [{
text : 'Edit'
}, {
text: 'Delete'
}]
});
Ext.define("Ext.app.ATree", {
extend: "Ext.tree.Panel",
alias:"widget.atree",
title: ' my tree',
height: 200,
//id: 'atree',
layout: 'fit',
//width: 300,
border: false,
store: ATreeStore,
//rootVisible: false,
useArrows: true,
frame: true,
closable: true,
collapsible: true,
animCollapse: true,
draggable: true,
resizable: true,
margin: ' 5 5 5 5',
dockedItems: [{
xtype: 'toolbar',
items: [{
text: 'reload',
handler: function() {
Ext.ComponentQuery.query('atree')[0].setRootNode(Ext.decode(objt.AssetTreeToJson()));
}
}, {
text: 'delete',
handler: function (record) {
alert(record.data.id)
}
}]
}],
listeners: {
itemcontextmenu:
function (node, event) {
node.select();
myContextMenu.showAt(event.xy);
}
}
});
谢谢你,我已经试过这个,问题是它实际上重新加载,但它显示一个空树! – Armance
嗯...我看到你的treestore没有定义代理,你在加载静态树数据吗? – Chao
没有它的动态,我用这个函数从我的数据库中读取我的数据Ext.decode(objt.TreeToJson()),我试着首先使用代理,但它要求一个URL,我没有我的数据在一个页面或什么的,我需要使用该功能! – Armance