Easyui中tree组件实现搜索定位功能及展开节点定位
这几天遇到个input + tree 实现搜索功能的需求,在这里贴出来供大家参考下,如果你有更好的实现效果希望不腻赐教!
首先给大家看看效果 小二 上图 :
需要的部件知识: easyui API
方法:
select target 选择一个节点,'target'参数表示节点的DOM对象。
expand target 展开一个节点,'target'参数表示节点的DOM对象。在节点关闭或没有子节点的时候,节点ID的值(名为'id'的参数)将会发送给服务器请求子节点的数据。

在遇到这个问题的时候,不知道如何下手 ,于是查找相关的资料 找到了 , 不过跟我的又不相同
http://blog.csdn.net/huyongl1989/article/details/9450753
下面我就说说我的思路吧 :
1.在系统启动时,会默认加载若干个树节点数据(因为我的树的数据量比较大,所以不是一次性把数据全部加载完,而是用户点击展开某个节点时,
再去数据库加载相应节点的数据,如果是数据量比较小的话, 可以将所有节点一次性加载完成,在这个的基础上做搜索定位会简单很多)
2.当用户输入某个要定位节点的名称之后,我会去数据库中进行模糊匹配,找出该名称的节点可能为哪些个。如果只匹配到一个则直接定位,
如果匹配了多个,则将这些节点的详细信息展示出来,让用户自己选择去定位具体的哪一个节点。
3.当用户选择定位某个节点后,再去数据库中查找相关的节点信息。
4.在查询出这些数据之后,我会将树的原来的数据源给替换成要定位的数据也是数据data
5.在对树的数据源进行更新处理之后,只需要将指定的节点展开,然后将定位设置为选中状态并让其处于当前窗口的视野范围内就达到了搜索定位的效果。
当用户单击查询按钮时,把输入框的值传入到控制器,让后台处理得到 输入值的父节点(也许父节点任有父节点,所以要把全部的上级都给查出来)
然后根据最高级节点依次展开,这样就实现了我的搜索功能!
下面废话不多说直接 上代码 :
function cityTree1JudicialdoSearch() {
$("#cityTree1").tree('collapseAll');
var root = $("#cityTree1").tree("find", "43");
$("#cityTree1").tree("expand", root.target);
$.ajax({
type: "post",
url: "/JudicialHelp/getAddressIdByName",
data: { AddressName: $("#cityTree1_bt_information").val() },
anysc: true,
success: function (data) {
data = $.parseJSON(data);
for (var i = 0; i < data.length; i++) {
if (data[i].area_lv == "4") {
var rootNode = $("#cityTree1").tree("find", data[i].sf_upbm); //获取当前节点的父节点
var rootNode1 = $("#cityTree1").tree("getParent", rootNode.target); //获取当前节点的父节点的父节点
$("#cityTree1").tree("expand", rootNode1.target);
$("#cityTree1").tree("expand", rootNode.target);
var childeNode = $("#cityTree1").tree("find", data[i].sf_dm); //获取当前节点
$("#cityTree1").tree("select", childeNode.target); //定位当前节点
} else if (data[i].area_lv == "3") {
var rootNode = $("#cityTree1").tree("find", data[i].sf_upbm); //获取当前节点的父节点
$("#cityTree1").tree("expand", rootNode.target);
var childeNode = $("#cityTree1").tree("find", data[i].sf_dm); //获取当前节点
$("#cityTree1").tree("select", childeNode.target); //定位当前节点
}
else if (data[i].area_lv == "2") {
var Node = $("#cityTree1").tree("find", data[i].sf_dm); //获取当前节点
$("#cityTree1").tree("expand", Node.target);
$("#cityTree1").tree("select", Node.target); //定位当前节点
}
}
}
});
}
本篇为原创: 转载请注明出处 www.cnblogs.com/izhiniao 谢谢!
Easyui中tree组件实现搜索定位功能及展开节点定位的更多相关文章
- 【Egret】中tree组件使用案例
Egret中tree组件使用案例,包含(文本过多时,自动换行功能) 下面代码结合http://bbs.egret.com/forum.php?mod=viewthread&tid=19028& ...
- easyui中tree控件添加自定义图标icon
来源于:http://blog.163.com/lintianhuanhai@126/blog/static/165587366201421704420256/ <!DOCTYPE html&g ...
- 做权限树时 使用EasyUI中Tree
符合EasyUI中Tree的Json格式,我们先看一下,格式是如何的 [{ "id":1, "text":"My Documents", & ...
- 使用EasyUI中Tree
easyui里面的加载tree的两种方式 第一种: 使用EasyUI中Tree 符合EasyUI中Tree的Json格式,我们先看一下,格式是如何的 [{ , "text":&qu ...
- easyui中tree型控件不正常显示的处理方法
我在使用easyui中的tree控件时,出现不正常显示的现象,比如li中不能使用自定义的图标.父级展开或关闭时,其子级仍然显现并出现重叠等.找了很多资料,都没解决这个问题,后来逐个对照官方的源码,才找 ...
- easyUI中treegrid组件构造树形表格(简单数据类型)+ssm后台
这几天做的项目要求用树形表格的形式展示一部分数据,于是就想到了使用easyUI的treegrid组件,但几经翻查各种资料,发现数据类型大多采取标准数据类型,即包含children元素的数据类型,小编查 ...
- [置顶] Flex中Tree组件无刷新删除节点
在Tree组件中经常要删除某个节点,而删除之后重新刷新加载该Tree组件会影响整个操作效果和效率,因此,无刷新删除就比较好,既删除了节点也没有刷新tree,而使Tree的状态处于删除之前的状态. 无刷 ...
- [转载]EasyUI中数据表格DataGrid添加排序功能
我们这里演示的是EasyUI数据表格DataGrid从服务器端排序功能,因为觉的本地数据排序没有多大的作用,一般我们DataGrid不会读取全部数据,只会读取当前页的数据,所以本地数据排序也只是对当前 ...
- iview中page组件的跳转功能BUG解决方案
xl_echo编辑整理,欢迎转载,转载请声明文章来源.欢迎添加echo微信(微信号:t2421499075)交流学习. 百战不败,依不自称常胜,百败不颓,依能奋力前行.--这才是真正的堪称强大!! 在 ...
随机推荐
- php制作数据字典
/** * 生成mysql数据字典 */ header("Content-type:text/html;charset=utf-8"); // 配置数据库 $database = ...
- FPGA中改善时序性能的方法_advanced FPGA design
本文内容摘自<advanced FPGA design>对应中文版是 <高级FPGA设计,结构,实现,和优化>第一章中的内容 FPGA中改善时序,我相信也是大家最关心的话题之一 ...
- Python type类具体的三大分类:metaclasses,classes,instance
Python type类视角中的对象体系需要我们不断的学习,其中我们使用的时候需要注意.下面我们就看看如何才能更好的运用Python type类.下面的文章希望大家有所收获. 在单纯的Python t ...
- [Python]Unicode转ascii码的一个好方法
写这篇文章的是一位外国人,他遇到了什么问题呢?比如有一个 Unicode 字符串他需要转为 ascii码: >>> title = u"Klüft skräms inför ...
- citrix协议ICA技术原理
转载自: http://www.zrss.com.cn/article-110-1.html Citrix交付中心解决方式的核心是虚拟化技术,虚拟化计算的核心是ICA协议,ICA协议连接了执行在平台上 ...
- 【cocos2d-x】Win7下配置Cocos2d-x开发环境
一.下载安装包 先去Cocos2d-x官网下载安装包,最新版本为cocos2d-2.1.5 http://www.cocos2d-x.org/news/134 二.解压安装包 下载完成后,解压文件,解 ...
- Android JNI入门第四篇——Android.mk文件分析
ndroid.mk文件是在使用NDK编译C代码时必须的文件,Android.mk文件中描述了哪些C文件将被编译且指明了如何编译.掌握Android.mk文件的编写主要是掌握其里头将要使用的一些关键字, ...
- ie调试控制台
function initConsole() { var console = document.createElement('div'); console.id = 'errorConsole'; d ...
- 【Spring】手动获取spring容器对象时,报no qualifying bean of type is defined
手动获取容器对象时,报no qualifying bean of type is defined, 经过调查,发现手动获取的时候,该类所在的包必须经过spring容器初始化. 1.SpringConf ...
- wpf将表中数据显示到datagrid示例(转)
原文:http://www.jb51.net/article/47120.htm 这篇文章主要介绍了wpf将表中数据显示到datagrid示例,需要的朋友可以参考下 a.在.xaml文件中拖入一个da ...