ExtJs TreePanel 动态加载

来源:互联网 发布:mac升级系统卡住开机 编辑:程序博客网 时间:2024/05/16 05:53
<span style="white-space:pre"></span>今天在做ExtJs 做动态加载的时候,使用删除第一次可以正确执行,当使用编辑、或添加后,更新的数据一直出不来
这是修改之前的代码:
<pre name="code" class="javascript">//添加点组var addPointGroup = function(groupName){Ext.Ajax.request({url : pg_servlet + '_addFavoriteGroup?name=' + encodeURI(groupName),method : 'GET', success : function(response){Ext.Msg.alert('提示', '添加点组成功!');
<pre name="code" class="javascript"><span style="white-space:pre"></span>loadPointGroup();
}, failure : function(response){Ext.Msg.alert('提示', '添加点组失败!' + response.responseText);}});};//编辑点组var editPointGroup = function(groupName,menuedGroupID){Ext.Ajax.request({url : pg_servlet + '_renameFavoriteGroup?name=' + groupName+ '&groupID=' + menuedGroupID, method : 'GET',success : function(response){Ext.Msg.alert('提示', '修改成功!');
<pre name="code" class="javascript"><span style="white-space:pre"></span>loadPointGroup();
}, failure : function(response){Ext.Msg.alert('提示', '修改失败!' + response.responseText);}});};//删除点组var deletePointGroup = function(groupId){Ext.Ajax.request({url : pg_servlet + '_removeFavoriteGroup?id=' + groupId,method : 'GET', success : function(response){Ext.Msg.alert('提示', '删除成功!');
<span style="white-space:pre"></span>loadPointGroup();
}, failure : function(response){Ext.Msg.alert('提示', '删除失败!' + response.responseText);}});}


使用这个东西我调试了半天,结果一直都出不来,后来发现一直都没调到重新加载的方法,树节点没有变化
//获取点组var loadPointGroup = function(){var tree = Ext.getCmp("tree");var node = tree.getSelectionModel().getSelectedNode();if (node == null){tree.getRootNode().reload();} else{var path = node.getPath('id');tree.getLoader().load(tree.getRootNode(), function(treeNode){tree.expandPath(path, 'id', function(bSucess,oLastNode){tree.getSelectionModel().select(oLastNode);});}, this);}};
修改之后的代码变成这个样子:
<pre name="code" class="javascript">//添加点组var addPointGroup = function(groupName){Ext.Ajax.request({url : pg_servlet + '_addFavoriteGroup?name=' + encodeURI(groupName),method : 'GET', success : function(response){loadPointGroup();Ext.Msg.alert('提示', '添加点组成功!');}, failure : function(response){Ext.Msg.alert('提示', '添加点组失败!' + response.responseText);}});};//编辑点组var editPointGroup = function(groupName,menuedGroupID){Ext.Ajax.request({url : pg_servlet + '_renameFavoriteGroup?name=' + groupName+ '&groupID=' + menuedGroupID, method : 'GET',success : function(response){loadPointGroup();Ext.Msg.alert('提示', '修改成功!');}, failure : function(response){Ext.Msg.alert('提示', '修改失败!' + response.responseText);}});};//删除点组var deletePointGroup = function(groupId){Ext.Ajax.request({url : pg_servlet + '_removeFavoriteGroup?id=' + groupId,method : 'GET', success : function(response){loadPointGroup();Ext.Msg.alert('提示', '删除成功!');}, failure : function(response){Ext.Msg.alert('提示', '删除失败!' + response.responseText);}});}


实际上在功能方面没有任何变化,只是把<span style="font-family: Arial, Helvetica, sans-serif;">loadPointGroup方法放在alert之前调用,这样能保证,</span><span style="font-family: Arial, Helvetica, sans-serif;">loadPointGroup方法不受alert方法的影响。至于为什么这样做,我认为这应该和extJs的异步操作有关。</span>

0 0