您的位置:首页 > Web前端 > JavaScript

ExtJs TreePanel 动态加载

2015-05-29 13:50 549 查看
<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>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: