zTree異步調用


前台代碼

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title></title>
    <script src="/scripts/Ztree/script/jquery-1.4.2.js" type="text/javascript"></script>
    <link href="/scripts/Ztree/style/zTreeStyle/zTreeStyle.css" rel="stylesheet" type="text/css" />
    <link href="/scripts/Ztree/style/demoStyle/demo.css" rel="stylesheet" type="text/css" />
    <script src="/scripts/Ztree/script/jquery.ztree-2.6.js" type="text/javascript"></script>
    <script type="text/javascript">
		var zTree;
//        var type="CognosConnectionString";
//          //獲取參數
//            var Request = new Object();
//            Request = GetRequest();
//            if (Request['type'] != null && Request['type'] != "")
//                type = Request['type'];
		var demoIframe;
                                       //setting 是 zTree 的全部設置參數集合,采用 JSON 結構,便於靈活配置
		var setting = {
			isSimpleData: true,
			treeNodeKey: "id",         //設置節點唯一標識屬性名稱
			treeNodeParentKey: "pId",  //設置節點的父節點唯一標識屬性名稱
			nameCol: "name",           //設置 zTree 顯示節點名稱的屬性名稱,此處默認為Name
			showLine: true,            //在樹型中是否顯示線條樣式
			root: {                    //zTree數據節點的根,全部節點數據都處於 root.nodes 內
				isRoot: true,
				nodes: []
			},
			async: true, 
            asyncUrl: "AjaxHandle/GetTableField.ashx?type=<%=type %>&time="+Math.random(), 
            asyncParam: ["id","pId","name"],    //異步調用時傳到后台的參數
           	callback:{
				asyncSuccess: zTreeOnAsyncSuccess
			}
		};
       
      var  treeNodes = [<%= NodesData%>];  
  
   	
		$(document).ready(function() {
			zTree = $("#treeid").zTree(setting, treeNodes);
		});
		
	    function zTreeOnAsyncSuccess(event, treeId, treeNode, msg) {
		    
	    }
        //讀取URL
        function GetRequest() {
            var url = location.search; //獲取url中"?"符后的字串
            var theRequest = new Object();
            if (url.indexOf("?") != -1) {
                var str = url.substr(1);
                strs = str.split("&");
                for (var i = 0; i < strs.length; i++) {
                    theRequest[strs[i].split("=")[0]] = unescape(strs[i].split("=")[1]);
                }
            }
            return theRequest;
        }
       function url(type) {
            window.location.href = "SQL.aspx?type=" + type.value;
        }
    </script>
</head>
<body>
    <form id="form1" runat="server">
    <div>
        <ul id="treeid" class="tree" >
        </ul>
    </div>
    </form>
</body>
</html>

 后台代碼:第一次調用一級數據

  protected void Page_Load(object sender, EventArgs e)
        {
            if (!IsPostBack)
            {
                if (Request["type"] != null)
                    type = Request["type"].ToString();
                List<string> treenodes = new List<string>();

                DataTable dt = new SystemClass(type).GetTableName();

                for (int i = 0; i < dt.Rows.Count; i++)
                {
                    //此處為了簡化,並沒有查詢此級的類別是否有子類.直接設置 'isParent':true

                    string node = string.Format("{{ \"id\":{0}, \"pId\":{1}, \"name\":\"{2}\",\"url\":\"\",\"isParent\":true}}",
                     dt.Rows[i]["id"], dt.Rows[i]["ParentID"], dt.Rows[i]["name"]);
                    treenodes.Add(node);
                }

                string Strtest = string.Join(",", treenodes.ToArray());

                NodesData.Append(Strtest);
            }
        }

 GetTableField.ashx

 異步調用返回的JOSON值

        context.Response.ContentType = "text/plain";
            string parentId = context.Request["id"];
            string type = context.Request["type"];
            List<string> treenodes = new List<string>();
            StringBuilder NodesData = new StringBuilder();
            DataTable dt = new SystemClass(type).GetTableFieldByParentid(parentId);

            for (int i = 0; i < dt.Rows.Count; i++)
            {
                //此處為了簡化,並沒有查詢此級的類別是否有子類.直接設置 'isParent':true

                string node = string.Format("{{ \"id\":{0}, \"pId\":{1}, \"name\":\"{2}\",\"url\":\"\",\"isParent\":false}}",
                dt.Rows[i]["id"], dt.Rows[i]["ParentID"], dt.Rows[i]["name"]);
                treenodes.Add(node);
            }
            string Strtest = string.Join(",", treenodes.ToArray());

            NodesData.Append(Strtest);
            context.Response.Write("[" + NodesData + "]");

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM