<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>