ZTree学习之旅

  2天时间研究了很多树,看过很多DOM最后,选择了Ztree了。

      终于搞定!

  以下代码仅供参考

  

    /// <summary>
    /// 将DataTable转换成Json格式 
    /// </summary>
    /// <param name="jsonName"></param>
    /// <param name="dt"></param>
    /// <returns></returns>
    public static string DataTableToJson(string jsonName, DataTable dt, string BeforCatogory)
    {
             string Json = "";
        Json = "[";
        if (dt.Rows.Count > 0)
        {
            for (int i = 0; i < dt.Rows.Count; i++)
            {
                Json += "{";


                //分类
                if (BeforCatogory == "CgId")
                {
                    Json += @"id:'SoId%" + dt.Rows[i]["SoId"].ToString() + "|" + dt.Rows[i]["SoName"].ToString() + @"',";
                    Json += @"name:'" + dt.Rows[i]["SoName"].ToString() + @"',";
                    Json += @"url:'',";
                    Json += @"isParent:'true'";
                }
                //分类
                else if (BeforCatogory == "SoId")
                {
                    Json += @"id:'PrId%" + dt.Rows[i]["PrId"].ToString() + "|" + dt.Rows[i]["PrName"].ToString() + @"',";
                    Json += @"name:'" + dt.Rows[i]["PrName"].ToString() + @"',";
                    Json += @"url:'',";
                    Json += @"isParent:'false'";
                }
                //分类
                else
                {
                    Json += @"id:'CgId%" + dt.Rows[i]["CgId"].ToString() +"|"+ dt.Rows[i]["CgName"].ToString() + @"',";
                    Json += @"name:'" + dt.Rows[i]["CgName"].ToString() + @"',";
                    Json += @"url:'',";
                    Json += @"isParent:'true'";
                }
                Json += "}";
                if (i < dt.Rows.Count - 1)
                {
                    Json += ",";
                }
            }
        }
        Json += "]";
        return Json.ToString();
    <script type="text/javascript">
        var setting = {
            check: {
                enable: true,
                chkboxType :{ "Y" : "s", "N" : "s" }
            },

            async: {
                //异步加载
                enable: true,
                url: getUrl
            },
            callback: {
                onCheck: zTreeOnCheck
            }
        };

        function zTreeOnCheck(event, treeId, treeNode) {
            alert(treeNode.tId + ", " + treeNode.name + "," + treeNode.checked);
        };

        function filter(treeId, parentNode, childNodes) {
            if (!childNodes) return null;
            for (var i = 0, l = childNodes.length; i < l; i++) {
                childNodes[i].name = childNodes[i].name.replace(/\.n/g, '.');
            }
            return childNodes;
        }


        function getUrl(treeId, treeNode) {
            var param = treeNode.id;
            return "TreeCategory.ashx?id=" +escape(param);
        }
        function createTree() {
            $.ajax({
                url: 'TreeCategory.ashx', //url  action是方法的名称
                type: 'POST',
                dataType: "text", //可以是text,如果用text,返回的结果为字符串;如果需要json格式的,可是设置为json
                ContentType: "application/json; charset=utf-8",
                success: function (data) {
                    $.fn.zTree.init($("#treeDemo"), setting, eval('(' + data + ')'));
                },
                error: function (msg) {
                    alert("数据加载失败!");
                }
            });
        }
        $(document).ready(function () {

            createTree();

        });

        //获取所有选中节点的值
        function GetCheckedAll() {
            var treeObj = $.fn.zTree.getZTreeObj("treeDemo");
            var nodes = treeObj.getCheckedNodes(true);
            var msg = "name--id--pid\n";
            for (var i = 0; i < nodes.length; i++) {
                msg += nodes[i].name + "--" + nodes[i].id + "--" + nodes[i].pId + "\n";
            }
            alert(msg);
        }   
    </script>

 到此结束,Ztree确实不错。。。

posted @ 2012-08-26 17:45  小草__  阅读(543)  评论(0编辑  收藏  举报