实现zTree节点显示与操作(添加,删除)同步

1. 需求

    项目的原型界面如下,左半部分是资源的结构,右半部分是资源的表格显示。需要完善的功能是:当通过右半部分的添加,删除按钮操作资源的时候,左半部分的资源树形结构需要与之同步,并且定位到操作的节点。

原型界面截图


2. 实现思路

    项目的框架:easyui+zTree。

    实现思路:ajax异步刷新,当右侧添加/删除节点之后,通过ajax异步访问数据库获得最新的资源信息,重新加载zTree,然后操作zTree节点使之定位到操作的节点。


3. 代码实现

页面代码(需要引用easyui+zTree文件)

js文件
 //zTree参数设置
	var zTree;
	var demoIframe;
	var zNodes ;
	var setting = {
			treeId:"applicationTree",
		view: {
			dblClickExpand: false,
			showLine: true,
			selectedMulti: false
		},
		data: {
			key:{
				name:"applicationName"
				},
			simpleData: {
				enable:true,
				idKey: "id",
				pIdKey: "applicationParentId",
				rootPId: "0"
			}
		},
		callback: {
			onClick: zTreeOnClick,
		}
	};
	//刷新资源树
	function refreshzTree(tId){
		var t = $("#tree");
		$.ajax({
			type:'post',      
            url: "queryApplicationTree",
            dataType: "text",
            async: false,
            success: function (data) {
            	zNodes=eval(data);
            },
            error: function (msg) {            
            }
       	 });
		t = $.fn.zTree.init(t, setting, zNodes);
		demoIframe = $("#testIframe");
		demoIframe.bind("load", loadReady);
		var zTree = $.fn.zTree.getZTreeObj("tree");
   		$("#"+tId + "_a").click();
   		var node = zTree.getNodeByTId(tId);
   		zTree.selectNode(node,false);
   		zTree.expandNode(node,true , false, false);//展开node一级
	};
	
	//页面加载
	$(document).ready(function(){
		 //加载资源树
		 var t = $("#tree");
		$.ajax({
			type:'post',      
            url: "queryApplicationTree",
            dataType: "text",
            async: false,
            success: function (data) {
            	zNodes=eval(data);
            	t = $.fn.zTree.init(t, setting, zNodes);
        		demoIframe = $("#testIframe");
        		demoIframe.bind("load", loadReady);
        		var zTree = $.fn.zTree.getZTreeObj("tree");
        		//首次访问主页时默认自动单击根节点
       			var treeNode=zTree.getNodeByParam("applicationParentId", "0");
           		$("#"+treeNode.tId + "_a").click();
           		var node = zTree.getNodeByTId(treeNode.tId);
           		zTree.selectNode(node,false);
           		zTree.expandNode(node, true, false, false);
            },
            error: function (msg) {            
            }
       	 });
		//显示根目录节点资源
		var applicationId = $("#applicationPid").val();
		$('#dgApplication').datagrid('load',{
			pid: applicationId
		});
	});
	
	function loadReady() {
		var bodyH = demoIframe.contents().find("body").get(0).scrollHeight,
		htmlH = demoIframe.contents().find("html").get(0).scrollHeight,
		maxH = Math.max(bodyH, htmlH), minH = Math.min(bodyH, htmlH),
		h = demoIframe.height() >= maxH ? minH:maxH ;
		if (h < 530) h = 530;
		demoIframe.height(h);
	}

	var url;
	//打开添加对话框
    function addApplication() {
		//获得选择节点的tId存入隐含域中
    	var nodes = $.fn.zTree.getZTreeObj("tree").getSelectedNodes();
		var tId = nodes[0].tId;
		$("#tId").val(tId);
		//打开添加应用对话框
    	 $('#dlgApplication').dialog('open').dialog('setTitle','添加应用');
         $('#fmApplica
  • 0
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 19
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 19
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值