关于ext的树的问题?
时间:2011-10-26
来源:互联网
用ext的TreePanel 从后台加载了一棵树,但是要加载的时候 把所有的节点展开(tree.expandAll()),如果没有展开的话 再次保存的时候 以前勾选保存的节点都获取不了,只有新选择的节点可以保存
贴出代码 请高手指正一下
JScript code
贴出代码 请高手指正一下
JScript code
function opensetpermit(id) { var tree = new Ext.tree.TreePanel({ autoScroll: true, renderTo: Ext.getBody(), containerScroll: true, root: new Ext.tree.AsyncTreeNode({ text: '组织机构', expanded: true, id: 'root' }), loader: new Ext.tree.TreeLoader({ dataUrl: '../../DATA/getoratree.aspx?parentid=1&needcheck=true' + "&id=" + id, requestMethod: 'GET' }), listeners: { click: function(node) { if (node.id != '') { } } } }); //加载这段可以点击加号的时候不造成错误 tree.on('beforeload', function(node) { if (node.id != '') { tree.loader.dataUrl = '../../DATA/getoratree.aspx?needcheck=true&parentid=' + node.attributes.companyid + "&id=" + id; } }); tree.on('checkchange', function(node, flag) { //获取所有子节点 node.cascade(function(node) { node.attributes.checked = flag; node.ui.checkbox.checked = flag; return true; }); //获取所有父节点 var pNode = node.parentNode; for (; pNode.id != "root"; pNode = pNode.parentNode) { if (flag || tree.getChecked(id, node.parentNode) == "") { pNode.ui.checkbox.checked = flag; pNode.attributes.checked = flag; } } }); tree.expandAll(); var rootnod; function mytoggleparent(node) { if (node.id != 'root') { node.ui.toggleCheck(true); node.attributes.checked = true; // alert(node.id); // rootnode = node.parentNode.id; mytoggleparent(node.parentNode); } }; var result = ""; var i = 0; function mytoggleChecked(node) { //迭代复选=>父节点影响子节点选择,子节点不影响父节点 if (node.hasChildNodes()) { node.eachChild(function(child) { if (child.attributes.checked == true) { if (i > 0) { result += ","; } result += (child.attributes.companyid); i++; } mytoggleChecked(child); //处理子节点(第三级,有点晕阿) }) } }; var win = new Ext.Window({ width: 500, height: 400, layout: 'fit', title: '访问网点授权', items: [tree], buttonAlign: "center", buttons: [ { text: '保存', handler: function() { mytoggleChecked(tree.root); //alert("result" + result); Ext.Ajax.request({ url: '../../DATA/setAccfgsbm.aspx', method: 'post', params: { fgsbms: result, id: id }, success: function(result, request) { Ext.MessageBox.alert('', "保存成功", function() { win.close(); }); }, failure: function(result, request) { } }) } }, { text: '取消', handler: function() { win.close(); } } ] }); win.show(); }
作者: twtxrjso 发布时间: 2011-10-26
????????????????
作者: twtxrjso 发布时间: 2011-10-29
相关阅读 更多
热门阅读
-
office 2019专业增强版最新2021版激活秘钥/序列号/激活码推荐 附激活工具
阅读:74
-
如何安装mysql8.0
阅读:31
-
Word快速设置标题样式步骤详解
阅读:28
-
20+道必知必会的Vue面试题(附答案解析)
阅读:37
-
HTML如何制作表单
阅读:22
-
百词斩可以改天数吗?当然可以,4个步骤轻松修改天数!
阅读:31
-
ET文件格式和XLS格式文件之间如何转化?
阅读:24
-
react和vue的区别及优缺点是什么
阅读:121
-
支付宝人脸识别如何关闭?
阅读:21
-
腾讯微云怎么修改照片或视频备份路径?
阅读:28