博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
easyui tree loadFilter的使用
阅读量:6894 次
发布时间:2019-06-27

本文共 2315 字,大约阅读时间需要 7 分钟。

 


实例化。这里增加了三个属性,可以指定idFiled,textFiled和parentField。所以这里的simpleData可以不严格转换成tree的数据格式。

$(function(){	$('#tt3').tree({		checkbox: true,		url: 'tree_data_simp.php',		parentField:"pid",		textFiled:"name",		idFiled:"key"	});});

tree_data_simp.php 的json数据类型。是一个扁平结构数据集。

[    {        "key": 1,        "name": "Folder1",        "iconCls": "icon-ok"    },    {        "key": 2,		"pid": 1,        "name": "File1",        "checked": true    },    {        "key": 3,		"pid": 1,        "name": "Folder2",        "state": "open"    },    {        "key": 4,        "pid": 3,        "name": "File3",        "attributes": {            "p1": "value1",            "p2": "value2"        },        "checked": true,        "iconCls": "icon-reload"    },    {        "key": 8,        "pid": 3,        "name": "Async Folder"    },    {        "key": 9,        "name": "language",        "state": "closed"    },    {        "key": "j1",        "pid": 9,        "name": "Java"    },    {        "key": "j2",        "pid": 9,        "name": "C#"    }]

自定义loadFilter的实现

$.fn.tree.defaults.loadFilter = function (data, parent) {	var opt = $(this).data().tree.options;	var idFiled,	textFiled,	parentField;	if (opt.parentField) {		idFiled = opt.idFiled || 'id';		textFiled = opt.textFiled || 'text';		parentField = opt.parentField;				var i,		l,		treeData = [],		tmpMap = [];				for (i = 0, l = data.length; i < l; i++) {			tmpMap[data[i][idFiled]] = data[i];		}				for (i = 0, l = data.length; i < l; i++) {			if (tmpMap[data[i][parentField]] && data[i][idFiled] != data[i][parentField]) {				if (!tmpMap[data[i][parentField]]['children'])					tmpMap[data[i][parentField]]['children'] = [];				data[i]['text'] = data[i][textFiled];				tmpMap[data[i][parentField]]['children'].push(data[i]);			} else {				data[i]['text'] = data[i][textFiled];				treeData.push(data[i]);			}		}		return treeData;	}	return data;};

 

延伸使用,对于easyui的数据节点,想要根据层级显示不同的icon

function getLevel(node, level){        var children = node.children;        if(level == 0)            node.iconCls = "icon-add";        else if( level == 1)            node.iconCls = "icon-remove";        else if ( level == 2)             node.iconCls = "icon-save";        if(children)            for( var i = 0; i < children.length; i++){                getLevel(children[i], level+1);        }    }

    转载地址:http://xpzdl.baihongyu.com/

    你可能感兴趣的文章
    jquery基础学习二
    查看>>
    为什么说写“安装指南”类博客的程序员是懒惰的
    查看>>
    Android模拟器——Genymotion(很快)
    查看>>
    学习规划
    查看>>
    SpringMVC项目使用Thymeleaf模板引擎
    查看>>
    定义和使用SQL变量
    查看>>
    12.21 php-fpm的pool12.22 php-fpm慢执行日志12.23 open_basedir12.24 php-fpm进程管理
    查看>>
    android 主线程消息队列更新View
    查看>>
    Supervisor进程管理软件的安装与配置
    查看>>
    细谈 vue - transition 篇
    查看>>
    Ubuntn中获取仓库中的工具源码与构建
    查看>>
    Html Dom getElementsByClassName
    查看>>
    Android 中文 API ---- tabhost使用方法一(tabwidget+framlayout)
    查看>>
    Kubernetes生产环境经验告诉你如何实现蓝绿部署和负载均衡
    查看>>
    go 缓存机制
    查看>>
    P2P路由模式的概念和优势
    查看>>
    wangframe如何扩展?
    查看>>
    7.Spring Boot配置文件application.yml
    查看>>
    计算学校周次,亲测成功!
    查看>>
    Centos 7 可安装 mysql5.7
    查看>>