最近在对DWZ和asp.net MVC3进行整合,其中遇到了很多问题,总算一一解决了,今天就说说题目所示的问题解决方案。
想做一个基于角色的权限管理,要对每一个Action进行权限控制。就想用DWZ的Tree树形菜单来做,结果在做的过程之中,发现DWZ的Tree树形菜单,自带的treeCheck无法返回选择的值,遇到过这种问题的朋友,应该知道这个情况。虽然官方提供一个KKK的源码样本,但基本没用,因为菜单前的复选框取消选择时,Json返回的items是空值。
经过网上搜索,没有找到有效的答案,最后自己想办法解决了,方法很笨拙,但有效。解决方法就是自己手动添加CheckBox,不要用它的treeCheck属性,也不要用它的链接扩展属性。
我先用简单的mvc示例代码循环出菜单
<ul class="tree treeFolder expand"> @for(int i=1;i<=3;i++) { <li><a href="javascript:void(0);">一级菜单 @i</a> <ul> @for(int m=1;m<=5;m++) { <li><label><input type="checkbox" id="@("menu"+i+m)" />二级菜单 @m</label></li> } </ul> </li> } </ul>
然后在页面上其它随便某个地方放置一个按钮,触发Jquery事件。
<input type="submit" id="btn" value="输出选择内容" />
然后编写JQuery代码或js代码就可以了。
<script type="text/javascript"> $(function () { $("#btn").click(function () { var str = ""; $('input[type="checkbox"]:checked').each(function (i, e) { str += e.id + ","; }); str = str.substring(0, str.length - 1); $("#resultBox").html(str); }); }); </script>
选择好需要的对象后,点击这个按钮就成了。如图
说得不是很清楚,没用过DWZ的树形菜单的朋友肯定不知所云,但用过并遇到这种情况的朋友,就知道我说的是什么了