easyui 扩展 之 Tree的simpleData加载

这是基于1.2.6的tree新增的loadFilter功能的一个扩展。大家都喜欢ztree的简单数据结构(扁平pid结构数据集,也就是id,pid形式),于是1.2.6有了loadFilter之后,我们可以很简单的就实现了。(这里要赞一下easyui的作者,对于架构的开闭原则做的很到位。)(请注意本扩展基于1.2.6的easyui

 

源码:详细介绍

$.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,btboys)