zoukankan      html  css  js  c++  java
  • zTree的使用2

    前台代码:

    @using Models;
    @{
        Layout = "~/Views/Shared/_Layout.cshtml";
    }
    <link type="text/css" href="~/Scripts/zTree/css/zTreeStyle/zTreeStyle.css" rel="stylesheet" />
    <script type="text/javascript" src="~/Scripts/zTree/js/jquery.ztree.all-3.5.min.js"></script>
    <script type="text/javascript" src="~/Scripts/jquery-treeview/lib/jquery.cookie.js"></script>
    <style type="text/css">
        a
        {
            text-decoration: none;
            color: #000;
        }
    </style>
    <script type="text/javascript">
        $(function () {
            loadTree();
        });//end $
    
        function loadTree(callback) {
            //ztree设置
            var setting = {
                data: {
                    simpleData: {
                        enable: true,
                        idKey: "id",
                        pIdKey: "pId",
                        rootPId: null
                    }
                },
                view: {
                    selectedMulti: false
                },
                callback: {
                    onClick: zTreeOnClick,
                    onExpand: onExpand,
                    onCollapse: onCollapse
                }
            };
    
            $.ajax({
                type: "POST",
                url: "/Admin/ChannelManage/GetData",
                success: function (data) {
                    if (data && data.length != 0) {
                        $.fn.zTree.init($("#tree"), setting, data);
                        var treeObj = $.fn.zTree.getZTreeObj("tree");
                        var cookie = $.cookie("z_tree" + window.location);
                        if (cookie) {
                            z_tree = JSON.parse(cookie);
                            for (var i = 0; i < z_tree.length; i++) {
                                var node = treeObj.getNodeByParam('id', z_tree[i])
                                treeObj.expandNode(node, true, false)
                            }
                        }
                        if (callback) {
                            callback();
                        }
                    }
                }
            });
        } //end loadTree
    
        function zTreeOnClick(event, treeId, treeNode) {
            $(".table-data").find("input").val("");
            $(".table-data").find("select").val("");
            $("#iconUrl").parent().html('<img alt="" src="" id="iconUrl" style="height: 100px;" />');
            if (!treeNode.isSite) {
                $("#site").val(treeNode.site.title);
                $("#title").val(treeNode.channel.title);
                if (treeNode.parentChannel) {
                    $("#parentChannel").val(treeNode.parentChannel.title);
                }
                else {
                    $("#parentChannel").val("");
                }
                $("#listType").val(treeNode.channel.listType);
                $("#displayPos").val(treeNode.channel.displayPos);
                $("#sort").val(treeNode.channel.sort);
                $("#iconUrl").attr("src", treeNode.channel.iconUrl);
            }
        }
    
        function onExpand(event, treeId, treeNode) {
            var cookie = $.cookie("z_tree" + window.location);
            var z_tree = new Array();
            if (cookie) {
                z_tree = JSON.parse(cookie);
            }
            if ($.inArray(treeNode.id, z_tree) < 0) {
                z_tree.push(treeNode.id);
            }
            $.cookie("z_tree" + window.location, JSON.stringify(z_tree))
        }
    
        function onCollapse(event, treeId, treeNode) {
            var cookie = $.cookie("z_tree" + window.location);
            var z_tree = new Array();
            if (cookie) {
                z_tree = JSON.parse(cookie);
            }
            var index = $.inArray(treeNode.id, z_tree);
            z_tree.splice(index, 1);
            for (var i = 0; i < treeNode.children.length; i++) {
                index = $.inArray(treeNode.children[i].id, z_tree);
                if (index > -1) z_tree.splice(index, 1);
            }
            $.cookie("z_tree" + window.location, JSON.stringify(z_tree))
        }
    
        //添加
        function add() {
            var treeObj = $.fn.zTree.getZTreeObj("tree");
            var nodes = treeObj.getSelectedNodes();
            if (nodes.length == 0) {
                alert("请选中一个节点");
                return;
            }
            $.iDialog({
                title: '新增-栏目',
                height: "400px",
                 "500px",
                content: "url:/Admin/ChannelManage/Add?isSite=" + nodes[0].isSite + "&pId=" + nodes[0].id.replace("site", "")
            });
        }
    
        //修改
        function edit() {
            var treeObj = $.fn.zTree.getZTreeObj("tree");
            var nodes = treeObj.getSelectedNodes();
            if (nodes.length == 0) {
                alert("请选中一个节点");
                return;
            }
            if (nodes[0].isSite) {
                alert("根节点是站点,不能修改");
                return;
            }
            $.iDialog({
                title: '修改-栏目',
                height: "500px",
                 "500px",
                content: "url:/Admin/ChannelManage/Edit?id=" + nodes[0].id
            });
        }
    
        //删除
        function del() {
            var treeObj = $.fn.zTree.getZTreeObj("tree");
            var nodes = treeObj.getSelectedNodes();
            if (nodes.length == 0) {
                alert("请选中一个节点");
                return;
            }
            if (nodes[0].isSite) {
                alert("根节点是站点,站点不能删除");
                return;
            }
            if (confirm("确定删除?")) {
                $.ajax({
                    url: "/Admin/ChannelManage/Del",
                    type: "POST",
                    data: { id: nodes[0].id },
                    success: function (data) {
                        if (data == "OK") {
                            alert("删除成功");
                            treeObj.removeNode(nodes[0]);
                            $(".input-text").val("");
                            $(".table-data").find("select").val("");
                        } else {
                            alert("删除失败:" + data);
                        }
                    }
                });
            }
        }
    
        //刷新
        function refresh() {
            var treeObj = $.fn.zTree.getZTreeObj("tree");
            var nodes = treeObj.getSelectedNodes();
            var id = nodes[0].id;
            loadTree(function () {
                treeObj = $.fn.zTree.getZTreeObj("tree");
                nodes = treeObj.getNodesByParam("id", id);
                treeObj.selectNode(nodes[0]);
                treeObj.setting.callback.onClick(null, treeObj.setting.treeId, nodes[0]);
            });
        }
    </script>
    <div id="easyui-layout" class="easyui-layout" style="height: 450px;">
        <div data-options="region:'north',border:false" style="height: 35px;">
            <div class="toolbar">
                @if (ViewBag.addRights)
                {
                    <a class="a-btn" href="javascript:void(0);" onclick="add()">
                        <img alt="" src="~/Content/images/add2.gif" />
                        添加栏目
                    </a>
                }
                @if (ViewBag.editRights)
                {
                    <a class="a-btn" href="javascript:void(0);" onclick="edit()">
                        <img alt="" src="~/Content/images/edit.gif" />
                        修改栏目
                    </a>}
                @if (ViewBag.delRights)
                {
                    <a class="a-btn" href="javascript:void(0);" onclick="del()">
                        <img alt="" src="~/Content/images/del2.gif" />
                        删除
                    </a>
                }
            </div>
        </div>
        <div id="west" data-options="region:'west'" style=" 30%; border-left: 0; border-bottom: 0;">
            <div style="height: 100%; overflow: auto;">
                <div id="tree" class="ztree" style="padding-left: 5px;">
                </div>
            </div>
        </div>
        <div id="center" data-options="region:'center'" style="border-left: 0; border-bottom: 0;">
            <table class="table-data" cellpadding="0" cellspacing="0">
                <tr>
                    <td class="td-title" style=" 35%;">
                        <span>所属站点:</span>
                    </td>
                    <td>
                        <input id="site" type="text" class="input-text"
                            disabled="disabled" style=" 60%;" />
                    </td>
                </tr>
                <tr>
                    <td class="td-title">
                        <span>栏目名称:</span>
                    </td>
                    <td>
                        <input id="title" type="text" class="input-text"
                            disabled="disabled" style=" 60%;" />
                    </td>
                </tr>
                <tr>
                    <td class="td-title">
                        <span>父级栏目:</span>
                    </td>
                    <td>
                        <input id="parentChannel" type="text" class="input-text"
                            disabled="disabled" style=" 60%;" />
                    </td>
                </tr>
                <tr>
                    <td class="td-title">
                        <span>栏目列表类型:</span>
                    </td>
                    <td>
                        <select class="select" id="listType" name="listType" disabled="disabled">
                            <option value=""></option>
                            <option value="1">文字列表</option>
                            <option value="2">图片列表</option>
                            <option value="3">单篇文章</option>
                            <option value="4">页面链接</option>
                            <option value="5">父级栏目</option>
                        </select>
                    </td>
                </tr>
                <tr>
                    <td class="td-title">
                        <span>栏目显示:</span>
                    </td>
                    <td>
                        <select class="select" id="displayPos" name="displayPos" disabled="disabled">
                            <option value=""></option>
                            <option value="1">顶部导航栏</option>
                            <option value="2">不显示</option>
                        </select>
                    </td>
                </tr>
                <tr>
                    <td class="td-title">
                        <span>排序:</span>
                    </td>
                    <td>
                        <input id="sort" type="text" class="input-text"
                            disabled="disabled" style=" 40px;" />
                    </td>
                </tr>
                <tr>
                    <td class="td-title" style="border-bottom: solid 1px #ddd;">
                        <span>栏目图标:</span>
                    </td>
                    <td style="border-bottom: solid 1px #ddd;">
                        <img alt="" src="" id="iconUrl" style="height: 100px;" />
                    </td>
                </tr>
            </table>
        </div>
    </div>
    <script type="text/javascript">
        $("#easyui-layout").height($(window).height());
    </script>
    View Code

    后台代码:

    public ActionResult GetData()
    {
        List<cms_site_ext> siteListAll = m_SiteDal.GetListAll();
        List<cms_channel_ext> channelListAll = m_ChannelDal.GetListAll();
        List<Dictionary<string, object>> dicList = new List<Dictionary<string, object>>();
    
        foreach (cms_site_ext site in siteListAll)
        {
            Dictionary<string, object> dic = new Dictionary<string, object>();
            dic.Add("id", "site" + site.id.ToString());
            dic.Add("pId", null);
            dic.Add("name", site.title);
            dic.Add("open", "true");
            dic.Add("isSite", true); //自定义属性
            dicList.Add(dic);
        }
    
        foreach (cms_channel_ext channel in channelListAll)
        {
            Dictionary<string, object> dic = new Dictionary<string, object>();
            dic.Add("id", channel.id.ToString());
            dic.Add("pId", channel.parentId == -1 ? "site" + channel.siteId.ToString() : channel.parentId.ToString());
            dic.Add("name", channel.title);
            dic.Add("isSite", false); //自定义属性
            dic.Add("channel", channel);
            dic.Add("site", siteListAll.Find(a => a.id == channel.siteId));
            dic.Add("parentChannel", channel.parentId == -1 ? null : channelListAll.Find(a => a.id == channel.parentId));
            dicList.Add(dic);
        }
    
        return Json(dicList);
    }
    View Code
  • 相关阅读:
    tornado中form表单验证详解
    关于tornado中session的总结
    Linux常用命令
    css3动画属性详解 与超酷例子
    keepalive高可用的健康检查
    keepalive的nginx防火墙问题
    安装配置hadoop
    tmux的简单快捷键
    部署使用elk
    k8s搭建部署
  • 原文地址:https://www.cnblogs.com/s0611163/p/5359963.html
Copyright © 2011-2022 走看看