• 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 + "]");
    
  • 相关阅读:
    Mysql学习总结(19)——Mysql无法创建外键的原因
    Java Web学习总结(21)——http协议响应状态码大全以及常用状态码
    Java Web学习总结(21)——http协议响应状态码大全以及常用状态码
    Tomcat学习总结(5)——Tomcat容器管理安全的几种验证方式
    Android学习总结(1)——好的 Android 开发习惯
    phabricator
    linux-kernel 学习计划
    【华为云技术分享】Linux内核编程环境 (1)
    7 分钟全面了解位运算
    【华为云技术分享】鲲鹏弹性云服务器GCC交叉编译环境搭建指南
  • 原文地址:https://www.cnblogs.com/zgaspnet/p/2609714.html
Copyright © 2020-2023  润新知