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>
相关文章推荐
- PHP、Java、.Net和Javascript的AES加密解密实现
- js中eval详解
- Ext JS 6 新特性和工具
- jstl、EL跟OGNL
- 【JavaScript 2—基础知识点】:数据类型
- 【JavaScript 2—基础知识点】:数据类型
- javascript 中isPrototypeOf 、hasOwnProperty、constructor、prototype等用法
- JavaScript-改变 HTML 图像
- JS匿名函数&闭包
- JavaScript-对事件作出反应\改变 HTML 内容\改变 HTML 样式\写入HTML输出
- Html中用js回调OC方法
- Js
- JavaScript-常用于验证用户的输入
- JS验证用户名密码大全。
- JavaScript 之 执行前台函数
- js调用父窗口中的方法
- SSH jsp+kindeditor 报错
- jsp到jsp传递中文字符乱码
- javascript:typeof与instanceof区别
- JSON.parse()和JSON.stringify()