参考网上的例子,自己写了一个利用extjs来表示权限的树的功能。
但是,很奇怪的是,在成功地读取了一次树的json数据后,页面还会不断地再次到下层读取json数据。这样就形成了一个死循环,不知问题出在哪里,在这里发帖请教下!
下面是我的部分js代码:
<!--<br> Ext.BLANK_IMAGE_URL = "<c:url value='/components/extjs/images/default/s.gif'/>";<br> Ext.EventManager.onDocumentReady(function() {<br> tree = new Ext.tree.TreePanel('tree-div', {<br> animate:true,<br> loader: new Ext.tree.CustomUITreeLoader({<br> dataUrl:'<c:url value="/userAuthAction.do?method=getUserAuths&userId="/>'+${requestScope.userId},<br> baseAttr: {<br> uiProvider: Ext.tree.CheckboxNodeUI<br> }<br> }),<br> enableDD:false,<br> containerScroll: true,<br> rootUIProvider: Ext.tree.CheckboxNodeUI,<br> selModel:new Ext.tree.CheckNodeMultiSelectionModel(),<br> rootVisible:true<br> });</p> <pre><code>tree.on('check', function() { Ext.get('cn').dom.value = this.getChecked().join(','); }, tree); // set the root node root = new Ext.tree.AsyncTreeNode({ text: '${requestScope.userId}权限树', draggable:false, id:'0' }); tree.setRootNode(root); // render the tree tree.render(); tree.expandAll(); Ext.get('exp').on('click', function() { tree.expandAll(); }); Ext.get('coll').on('click', function() { tree.collapseAll(); }); Ext.get('ser').on('click', ser); </code></pre> <p>});<br> 其中的${requestScope.userId}是其他页面传递过来的用户Id。在对应的下层总,一次成功地读取的json数据为:<br> [{text=公告, checked=true, leaf=false, cls=folder, children=[{text=公告管理, leaf=false, cls=folder, checked=true, children=[{text=公告管理_查询, checked=true, cls=file, id=6}], id=2}], id=1}]</p> <p>对任何提示都表示感谢!</p>
leaf=true
每点一次就取一次数据