Z-Tree用法

今天同事给我介绍了一个Z-Tree。之前树都是自己写,样式很一般,出树后对树进行操作代码量也很大。通过同事介绍的这个Z-Tree

仔细研究了一下,发现还可以,用着挺方便的,自己写了个demo进行测试,很完美

下面我就对自己写的demo进行一下演示讲解:

原文地址:http://www.cnblogs.com/sixiangqimeng/p/3344024.html               

 

首先介绍一下Z-Tree的源文件采用的是3.5.14版本,里面包括四个文件夹(第一个帮助文档,用来查看树里面的一些方法。第二个和第四个是我们用到的css和js。第三个是示例)

      

我们主要从第三个入手(示例里面包括中文版(cn)和英文版(en)),我们打开cn。我想大家一看目录就知道要打开哪个了吧。打开index

打开后如下图:这个图左面是不同的树类型,右面是树的效果。左面有各种各样的树可以选择,如果选择好用哪种,就找到右面的文件路径例如(core/noline.html)这里就是源码。

  我们打开源码

 

<!DOCTYPE html>
<HTML>
<HEAD>
    <TITLE> ZTREE DEMO - noIcon </TITLE>
    <meta http-equiv="content-type" content="text/html; charset=UTF-8">
    <link rel="stylesheet" href="../../../css/demo.css" type="text/css">
    <link rel="stylesheet" href="../../../css/zTreeStyle/zTreeStyle.css" type="text/css">
    <script type="text/javascript" src="../../../js/jquery-1.4.4.min.js"></script>
    <script type="text/javascript" src="../../../js/jquery.ztree.core-3.5.js"></script>
    <!--  <script type="text/javascript" src="../../../js/jquery.ztree.excheck-3.5.js"></script>
      <script type="text/javascript" src="../../../js/jquery.ztree.exedit-3.5.js"></script>-->
    <SCRIPT type="text/javascript">
        <!--
        var setting = {
            view: {
                showIcon: showIconForTree
            },
            data: {
                simpleData: {
                    enable: true
                }
            }
        };

        var zNodes =[
            { id:1, pId:0, name:"父节点1 - 展开", open:true},
            { id:11, pId:1, name:"父节点11 - 折叠"},
            { id:111, pId:11, name:"叶子节点111"},
            { id:112, pId:11, name:"叶子节点112"},
            { id:113, pId:11, name:"叶子节点113"},
            { id:114, pId:11, name:"叶子节点114"},
            { id:12, pId:1, name:"父节点12 - 折叠"},
            { id:121, pId:12, name:"叶子节点121"},
            { id:122, pId:12, name:"叶子节点122"},
            { id:123, pId:12, name:"叶子节点123"},
            { id:124, pId:12, name:"叶子节点124"},
            { id:13, pId:1, name:"父节点13 - 没有子节点", isParent:true},
            { id:2, pId:0, name:"父节点2 - 折叠"},
            { id:21, pId:2, name:"父节点21 - 展开", open:true},
            { id:211, pId:21, name:"叶子节点211"},
            { id:212, pId:21, name:"叶子节点212"},
            { id:213, pId:21, name:"叶子节点213"},
            { id:214, pId:21, name:"叶子节点214"},
            { id:22, pId:2, name:"父节点22 - 折叠"},
            { id:221, pId:22, name:"叶子节点221"},
            { id:222, pId:22, name:"叶子节点222"},
            { id:223, pId:22, name:"叶子节点223"},
            { id:224, pId:22, name:"叶子节点224"},
            { id:23, pId:2, name:"父节点23 - 折叠"},
            { id:231, pId:23, name:"叶子节点231"},
            { id:232, pId:23, name:"叶子节点232"},
            { id:233, pId:23, name:"叶子节点233"},
            { id:234, pId:23, name:"叶子节点234"},
            { id:3, pId:0, name:"父节点3 - 没有子节点", isParent:true}
        ];

        function showIconForTree(treeId, treeNode) {
            return !treeNode.isParent;
        };

        $(document).ready(function(){
            $.fn.zTree.init($("#treeDemo"), setting, zNodes);
        });
        //-->
    </SCRIPT>

</HEAD>

<BODY>
<h1>不显示节点图标的树</h1>
<h6>[ 文件路径: core/noicon.html ]</h6>
<div class="content_wrap">
    <div class="zTreeDemoBackground left">
        <ul id="treeDemo" class="ztree"></ul>
    </div>
    <div class="right">
        <ul class="info">
            <li class="title"><h2>1、setting 配置信息说明</h2>
                <ul class="list">
                <li>此 Demo 利用 Function 设置了使父节点不显示图标的规则</li>
                <li class="highlight_red">是否显示节点图标请设置 setting.view.showIcon 属性,详细请参见 API 文档中的相关内容</li>
                </ul>
            </li>
            <li class="title"><h2>2、treeNode 节点数据说明</h2>
                <ul class="list">
                <li>是否显示图标,不需要 treeNode 节点数据提供特殊设置,但如果用户需要根据不同节点动态设置,可以对节点数据增加特殊属性,用于判别</li>
                </ul>
            </li>
        </ul>
    </div>
</div>
</BODY>
</HTML>
View Code

下面我将用代码举例完成一棵树

原文地址:http://www.cnblogs.com/sixiangqimeng/p/3344024.html      
根据我的业务需求,我要出一颗所有知识点的树,这段代码是从数据库取数据(访问数据库代码就不写了,这是根据我的业务逻辑写的)后赋值给一个方法,把数据序列号成json数据返回到前台

  public ActionResult GetKpMenu()
        {
            string quesBankID = Session["CurUser"] == null ? "" : (Session["CurUser"] as CurUser).QuesBankID.ToString();
            string strJson = "[";
            DataTable dt = new QuesInformation().GetKpMenu(quesBankID, "1");
            if (dt.Rows.Count > 0)
            {
                new MenuInfo().GetKpMenu(dt, "0", ref strJson);
            }
            strJson += "]";
            return Content(strJson);
        }
View Code
  /// <summary>
        /// 知识点DataTable转换为Json树
        /// </summary>
        /// <param name="dt">知识点</param>
        /// <param name="parentId">父节点ID(默为:0)</param>
        /// <param name="_strJsonTME">ref传入,返回json字符串</param>
        public void GetKpMenu(DataTable dt, string parentId, ref string _strJsonTME)
        {
            for (int i = 0; i < dt.Rows.Count; i++)
            {
                if (dt.Rows[i]["ParentNodeID"].ToString() == parentId)
                {
                    _strJsonTME += "{\"name\":\"" + dt.Rows[i]["NodeTitle"].ToString() + "\",\"id\":\"" + dt.Rows[i]["KpNodeID"] + "\"";
                    if (Convert.ToBoolean(dt.Rows[i]["HasChild"]))
                    {
                        _strJsonTME += ",\"children\":[";
                        string KpNodeID = dt.Rows[i]["KpNodeID"].ToString();
                        GetKpMenu(dt, KpNodeID, ref _strJsonTME);
                        _strJsonTME += "]},";
                    }
                    else
                    {
                        _strJsonTME += "},";
                    }
                }
                if (i == dt.Rows.Count - 1)
                {
                    _strJsonTME = _strJsonTME.Trim(',');
                }
            }
        }
View Code

由此即可出来一颗树如图:

原文地址:http://www.cnblogs.com/sixiangqimeng/p/3344024.html    

posted @ 2013-09-28 10:53  思想启蒙家  阅读(1004)  评论(0编辑  收藏  举报