参考网上的例子,自己写了一个利用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>