Ztree异步树加载

JSP代码片段

<%@ page language="java" contentType="text/html; charset=utf-8"
    pageEncoding="utf-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<script type="text/javascript"
    src="${ctx}/thscommon/javascript/jquery-1.7.2.min.js"></script>
<script type="text/javascript"
    src="${ctx}/win/javascript/jquery.ztree.core-3.5.js"></script>
<link rel="stylesheet" href="${ctx}/win/css/zTreeStyle/zTreeStyle.css"
    type="text/css">
<title>Insert title here</title>

<script type="text/javascript">
    var setting = {
        /* check : {
            enable : true,
            chkStyle : "radio",
            radioType: "id"
        }, */
        async : {
            enable : true,
            url : "${ctx}/common/tree/river!getNodeData.action",
            autoParam : [ "id" ],
            dataFilter : filter
        },
        callback : {
            //beforeClick: beforeClick,
            onClick : onClick
        }
    };

    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 onClick(event, treeId, treeNode, clickFlag) {
        var win = art.dialog.open.origin;//来源页面
        win.snstSet(treeNode.id, treeNode.name,$("#idx").val());
        $.dialog.close();
    }

    $(document).ready(function() {
        $.fn.zTree.init($("#tree"), setting);
    });
//-->
</script>
</head>
<body>
    <div class="zTreeDemoBackground left">
        <ul id="tree" class="ztree"></ul>
    </div>
    <input type="hidden" id="idx" name="idx" value="${idx}">
</body>
</html>

action处理如下

public void getNodeData() {
		List<Map<String, Object>> nodedata = service.getNodes(this.getId());
		List<Map<String, Object>> list = new ArrayList<Map<String, Object>>();
		Map<String, Object> tmp = null;
		for (Map<String, Object> map : nodedata) {
			tmp = new HashMap<String, Object>();
			tmp.put("id", map.get("id"));
			tmp.put("name", map.get("name"));
			tmp.put("isParent",
					Integer.valueOf(map.get("cnt").toString()) > 0 ? true
							: false);
			list.add(tmp);
		}
		try {
			PrintWriter out;
			JSONObject jo = new JSONObject();
			response.setCharacterEncoding("gbk");
			response.setContentType("text/html; charset=GBK");
			out = response.getWriter();
			System.out.println(JSONArray.fromObject(list).toString());
			out.print(JSONArray.fromObject(list).toString());
			out.close();
		} catch (IOException e) {
			e.printStackTrace();
		}
	}

  

时间: 2025-01-18 01:43:51

Ztree异步树加载的相关文章

cocos2dx3.2 异步动态加载--------保卫萝卜开发总结(一)

半个月没有更新博客,从这个项目开始学习了很多细节的东西,都不太成系统,但是却是开发上线中必须经历的东西.比如超级玛丽系列(一)中的正确的异步加载,正确的分层.正确的合成和加载plist.及时的移除未使用的cache.按照关卡动态加载当前关卡所需的资源等. 本章只分享一下异步加载的逻辑,如有不对的地方还望大家及时指出. 目前我代码中需要异步加载的资源一共有四类: 1.png    单个png的情况比较少 2.plist和png一起的打包资源 3.plist和pvr.ccz一起的打包资源 4.Coc

javascript异步延时加载及判断是否已加载js/css文件

引用就是某一变量(目标)的一个别名,对引用的操作与对变量直接操作完全一样. 引用的声明方法:类型标识符 &引用名=目标变量名: 例如: int a int &b=a; //定义引用b,它是变量a的引用,即别名 #include <stdio.h> void main() { int a = 123; int &b = a; printf("a=%d b=%d\n", a, b); } 执行结果: 实例:引用和变量的关系 #include <io

★android开发--ListView+Json+异步网络图片加载+滚动翻页的例子(图片能缓存,图片不错乱)

例子中用于解析Json的Gson请自己Google下载 主Activity: package COM.Example.Main; import java.util.HashMap; import java.util.Iterator; import java.util.LinkedList; import java.util.List; import java.util.Map; import COM.Example.Main.R; import COM.Example.Main.stringG

异步网络加载开源框架AsyncHttpClient使用

AsyncHttpClient是异步的,但是有时候我们需要得到请求的结果集来返回给某个函数,由于是异步的,所以不能够直接return会去,所以可以定义一个interface来给调用AsyncHttpClient方法的一个回调来获取结果集,代码如下:定义回调接口: 点击(此处)折叠或打开 private static Callback mCallback; public interface Callback{ abstract void rankingsResultData(JSONArray r

Cocos2d-x 3.0多线程异步资源加载

Cocos2d-x从2.x版本到上周刚刚才发布的Cocos2d-x 3.0 Final版,其引擎驱动核心依旧是一个单线程的"死循环",一旦某一帧遇到了"大活儿",比如Size很大的纹理资源加载或网络IO或大量计算,画面将 不可避免出现卡顿以及响应迟缓的现象.从古老的Win32 GUI编程那时起,Guru们就告诉我们:别阻塞主线程(UI线程),让Worker线程去做那些"大活儿"吧. 手机游戏,即便是休闲类的小游戏,往往也涉及大量纹理资源.音视频资

安卓简历技术点——熟练掌握ListView的优化及异步任务加载网络数据。

对于面试,可能listview这个问题,永远高频出现,毕竟开发中,他出现的也是高频的. 我先说下基本优化 listview优化 1.复用减少内存消耗---->convertView进行判断是否为空,不为空的时候,直接重新使用.为空的时候给他一个布局 2.减少查找id的次数----->定义一个ViewHolder 存储控件,然后与convertView绑定起来 对于以上的两条如果说你能在项目中用到并且将Viewholder抽取到一个单独的类中进行复用,面试官对你看法会有所提高的. 继续吧 如果对

伟景行 citymaker 从入门到精通(2)——工程图层树加载

工程树是指explorer左边这棵树 本例子实现了图层树加载,点击节点切换可视状态 树控件使用easyui的树 html部分 onCheck:treeProjectTreeOnCheck是指树节点的onCheck是js函数treeProjectTreeOnCheck 1 <div data-options="region:'center',fit:true"> 2 <object id="__g" type="application/x-

页面全部加载完毕和页面dom树加载完毕

dom树加载完毕 $(document).ready() //原生写法document.ready = function (callback) {            ///兼容FF,Google            if (document.addEventListener) {                document.addEventListener('DOMContentLoaded', function () {                    document.rem

javascript 异步模块加载 简易实现

在javascript是没有类似java或其他语言的模块概念的,因此也不可能通过import或using等关键字来引用模块,这样造成了复杂项目中前端代码混乱,变量互相影响等. 因此在复杂项目中引入AMD的概念,AMD:全称是Asynchronous Module Definition,即异步模块加载机制.通过AMD可以不需要在页面中手动添加<script>来引用脚本,而通过定义依赖自动加载模块脚本,接下来的代码将讲解如何实现建议的AMD模块,如果需要查看比较详细的实现可以下载requirejs