zTree的使用2

来源:http://www.cnblogs.com/s0611163/archive/2016/04/06/5359963.html
-Advertisement-
Play Games

前臺代碼: @using Models; @{ Layout = "~/Views/Shared/_Layout.cshtml"; } <link type="text/css" href="~/Scripts/zTree/css/zTreeStyle/zTreeStyle.css" rel="st ...


前臺代碼:

@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",
            width: "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",
            width: "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="width: 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="width: 35%;">
                    <span>所屬站點:</span>
                </td>
                <td>
                    <input id="site" type="text" class="input-text"
                        disabled="disabled" style="width: 60%;" />
                </td>
            </tr>
            <tr>
                <td class="td-title">
                    <span>欄目名稱:</span>
                </td>
                <td>
                    <input id="title" type="text" class="input-text"
                        disabled="disabled" style="width: 60%;" />
                </td>
            </tr>
            <tr>
                <td class="td-title">
                    <span>父級欄目:</span>
                </td>
                <td>
                    <input id="parentChannel" type="text" class="input-text"
                        disabled="disabled" style="width: 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="width: 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/jav

您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 微信一直用著不爽,這幾天研究它的jsapi支付,即在微信內打開H5頁面,完成支付的過程,在這個過程中,你將會遇到各種各樣的問題,而大叔將把這些問題的解決方法寫一下,希望可以給你帶來幫助! 一 網頁授權的功能變數名稱需要設置 註意:我們設置的功能變數名稱為當前功能變數名稱,而不是一級功能變數名稱,如www.api.com,你不能設置 ...
  • 上一篇文章介紹了VMWare12虛擬機、Linux(CentOS7)系統安裝、部署Nginx1.6.3代理服務做負載均衡。接下來介紹通過Nginx將請求分發到各web應用處理服務。 一、Web應用開發 1、asp.net mvc5開發 (1)新建一個MVC5工程,新建一個Controller,在In ...
  • Atitit..css的體繫結構 1. Oocss 與 bem標準化1 1.1. 四種樣式表及六種選擇器1 1.2. 常用的css框架 amazeui bootstrap1 1.3. Css圖標1 1.4. Css的操作api1 1.5. Css ide ::2 1. Oocss 與 bem標準化 ...
  • Atitit.判斷元素是否顯示隱藏在父元素 overflow 1.1. scrollTop 指的是元素的滾動條頂端距離原生基線的高度...1 1.2. 判斷元素是否顯示隱藏在父元素 $(next).position().top》》curBaseTop= $(".listBlock_main").sc ...
  • AMD是RequireJS在推廣過程中對模塊定義的規範化產出。 非同步載入模塊,依賴前置,提前執行。 Define定義模塊 define([‘require’,’foo’],function(){return}); Require載入模塊(依賴前置) require([‘foo’,’bar’],fun... ...
  • Atitit.js模塊化 atiImport 的新特性javascript import 1. 常見的js import規範amd ,cmd ,umd1 1.1. Require更多流行3 2. atiImport3 2.1. Base url的設置4 2.2. Atiimport的使用4 2.3. ...
  • 前言 上一節我們已經把環境給搭建起來了,現在我們通過一個快速案例把angular 2.0 初步瞭解一下,後續我們會深入每一個細節,這個案例主要是一個【英雄(Hero)】列表的展示,創建,編輯。這個案例我打算分五個章節來做,第一個章節我們可以學習到angular2.0一下內容: 單項數據綁定 雙向數據 ...
  • 動畫的思路很簡單,點擊頁面上一個元素,頁面滾動到指定位置。下麵介紹一下我3個小時百度的研究成果: 首先是html部分: 先添加兩個<a>元素作為按鈕。然後對<a>元素進行補充: 接著引入jquery和寫入代碼: 需要註意: 1、寫入的代碼最好在引入的jquery語句下方 2、id一定要和<a>元素對 ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...