0 0

extjs4.2 tree与grid不同步变化10


各位大神:

最近用extjs4.2开发,有一个动态加载树,树的加载是点击加号,通过id到后台取值,点击左边加号会展示其子节点,点击文本(比如子公司一),会在右边grid显示其子公司或部门,现在问题是点击子公司一的加号,显示出子节点,然后点击子公司一,右边grid显示子单位或部门,在grid上有按钮进行增删修改操作后,reload()树没有问题,如果再点击子公司二左边加号,(不点子公司二的文本)右边的grid不变,还是子公司一的部门,增删改后,reload()树后,发现左边树的子公司一的子节点没有变化,看调试,发现树reload是最后一次点击且未加载(最后点击的节点的加号的节点如果先前加载了,是不会reload的)的节点,而用load,不能保持树原来展开的样式,客户要求树保持展开样式,并且是变化后的。请问我该怎么做,谢谢指点
这是Controller.js
Ext.define( 'CS.controller.cs.depart.DepartController',
{extend : 'Ext.app.Controller',
stores : [ 'cs.depart.DeptStore4Tree',
'cs.depart.DepartStore'],
views : [ 'Workspace', 'cs.depart.DepartPanel',
'cs.depart.DepartTree',
'cs.depart.DepartGrid'],
refs : [ {
ref : 'workspace',
selector : 'workspace'
} ],
init : function() {
this.control({
'departgrid button[action=addjigou]' : {
click : this.addjigou
},
'departTree' : {
itemclick : function(tree, record, item, e,
opti) {
var workspace = this.getWorkspace();
var grstore = workspace.down('departgrid')
.getStore();
grstore.load({
params : {
id : record.get("id")
}});}}});
},
addjigou : function() {
var workspace = this.getWorkspace();
var grst = workspace.down('departTree')
.getSelectionModel().getSelection();

{
var grid1 = workspace.down('departgrid');
var grst1 = workspace.down('departTree');
var win = Ext.create('Ext.window.Window',
{
title : '新增单位(部门)',
iconCls : 'icon-attachment',
items : [ {xtype : addjigouForm'}],
modal : true,
height : 165,
buttons : [ {
text : '保存',
iconCls : 'icon-save',
handler : function() {
var form = this.up('window').down('addjigouForm').getForm();
if (form.isValid()) {
form.submit({
url : 'addDepart.action',
waitMsg : '正在保存•••',
success : function(form,action) {
Ext.Msg.alert('添加成功','单位(部门)添加成功!');
win.close();
grid1.getStore().reload();
            grst1.getStore().load(); },
failure : function(form,action) {
Ext.Msg .alert('保存失败','网络超时!');
}}); }},}}
} ]}).show();
}
}
});
这是treeStore:
Ext.define("CS.store.cs.depart.DeptStore4Tree",{
extend:'Ext.data.TreeStore',
model:'CS.model.cs.depart.ShenchengshuModel',


  autoLoad:false,
  nodeParam : 'id', 
  proxy : { 
        type : 'ajax', 
       url : 'readDeptTree.action',
        reader : { 
            type:'json', 
            root:'children' 
           

        }    }, 

root : { 
        text : '总公司', 
       id : '00000001', 
       isgongsi:'1',
       levels :0,
       expanded : true
      
    }
   
})

这是treepanel:
Ext.define("cs.view.cs.depart.DepartTree",{
extend:'Ext.tree.Panel',
alias:'widget.departTree',
rootVisible:true,//true表示展示
displayField:'text',
animate:false ,


store:'cs.depart.DeptStore4Tree'


});

EXT 
2014年8月11日 19:49
  • 大小: 24.2 KB
目前还没有答案

相关推荐

Global site tag (gtag.js) - Google Analytics