DWZ中Tree树形菜单的treeCheck如何获取返回值解决方案

最近在对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的树形菜单的朋友肯定不知所云,但用过并遇到这种情况的朋友,就知道我说的是什么了

posted @ 2016-12-12 15:58  左正  阅读(807)  评论(1编辑  收藏  举报