第47周星期五EXTJS组织树搜索
今天想解决产品中的一个问题:就是EXTJS资源树在搜索时树展开到搜索结果一级,但考虑到搜索时模糊,一种最坏的极端情况是大部分结点都满足模糊搜索条件都需要展开而导致要加载所有结点,在组织资源树很多时候加载会很慢,所以之前在做的时候即使是搜索也只是加载到到满足结果的第一级树结点,自我感觉这种方案很不好,但如果按放案一,搜索结果数量很大时会很卡,如果是一次加载一个的话再统计时会不方便,这是种矛盾。实现方案还是跟现场用户最常用的功能是搜索定位还是搜索结果过滤有关。如果是搜索定位为主就应该以方案一实现,一次定位一个结点,可以选择上一个、下一个;如果主要是为了过滤结果可以考虑用方案二。
一种可能的改进:搜索时定位一个之后可以把其它的搜索结果也同时显示出来,用户单击一个结果定位展开对应的结点。另一种是搜索时模糊提示,类似百度提示一样的效果。下面摘录一些网上看到的ExtjS树异步加载数据和搜索定位的问题。
TreePanel基本配置参数:
//TreePanel配置参数
1.animate:true//展开,收缩动画,false时,则没有动画效果
2.autoHeight:true//自动高度,默认为false
3.enableDrag:true//树的节点可以拖动Drag(效果上是),注意不是Draggable
4.enableDD:true//不仅可以拖动,还可以通过Drag改变节点的层次结构(drap和drop)
5.enableDrop:true//仅仅drop
6.lines:true//节点间的虚线条
7.loader:Ext.tree.TreeLoader//加载节点数据
8.root:Ext.tree.TreeNode//根节点
9.rootVisible:false//false不显示根节点,默认为true
10.trackMouseOver:false//false则mouseover无效果
11.useArrows:true//小箭头
通过AJAX返回第一个匹配节点的路径Path,然后展开这个路径,选中这个搜索到节点
2. 在服务器端查找到节点path,path由节点id号和"/"构成。注意path的格式,如:'/0/4/7'。此处0表示根节点id,7表示被查找的节点id。