var tbar = new Ext.Toolbar({
buttonAlign : 'center',
items : [{xtype : 'textfield',emptyText : '根据企业名称检索企业...',id:'filter_input',width : 200}]
});
this.userTreepanel = new Ext.tree.TreePanel({
renderTo : 'tree_menu_'+this.pageId,
region:'north',
title:'用能单位树',
split:true,
width: 210,
tbar : tbar,
height : (this.getBodyHeight(0)-10),
collapsible: false,
margins:'5 0 5 0',
loader: this.treeLoader,
rootVisible:true,
lines: false,
singleClickExpand : true,
autoScroll:true,
root: new Ext.tree.AsyncTreeNode({text:"企业树",id:'-1',expanded:true}),
listeners: {
'click' : function(node,e) {
Main.getPageControler().treeNodeClicked(node);
Main.getPageControler().commit(node);
}
}
});
var tree = this.userTreepanel;
var filter = new Ext.tree.TreeFilter(tree, {
clearBlank : true,
autoClear : true
});
// 保存上次隐藏的空节点
var hiddenPkgs = [];
var field = Ext.get('filter_input');
field.on('keyup', function(e) {
var text = field.dom.value;
// 先要显示上次隐藏掉的节点
Ext.each(hiddenPkgs, function(n) {
n.ui.show();
});
// 如果输入的数据不存在,就执行clear()
if (!text) {
filter.clear();
return;
}
tree.expandAll();
// 根据输入制作一个正则表达式,'i'代表不区分大小写
var re = new RegExp(Ext.escapeRe(text), 'i');
filter.filterBy(function(n) {
// 只过滤叶子节点,这样省去枝干被过滤的时候,底下的叶子都无法显示
return !n.isLeaf() || re.test(n.text);
});
// 如果这个节点不是叶子,而且下面没有子节点,就应该隐藏掉
hiddenPkgs = [];
tree.root.cascade(function(n) {
if (!n.isLeaf() && n.ui.ctNode.offsetHeight < 3) {
n.ui.hide();
hiddenPkgs.push(n);
}
});
});
- 大小: 35.7 KB
分享到:
相关推荐
本篇文章将深入探讨如何根据输入的关键字过滤Ext树节点,类似于MyEclipse中的preferences搜索框功能。 首先,理解“树节点过滤”(Tree Node Filtering)的概念。在ExtJS的树视图中,过滤功能允许用户通过输入...
本篇将深入探讨ExtJS Grid的过滤操作,以及如何动态地对本地store进行筛选。 1. **Grid过滤基础** - **Filter Model**:ExtJS Grid中的过滤功能基于Filter Model。每个列都可以有自己的过滤器,用户可以根据需要...
EXTJS过滤树是一种在EXTJS框架中实现的高级特性,主要用于增强树形组件的功能,让用户能够更高效地浏览和操作大量的层次数据。在EXTJS中,树形组件(TreePanel)通常用于展示具有层级关系的数据,例如组织结构、文件...
在ExtJs中,"Filter"功能是用来处理数据网格(Grid)中的数据过滤,它允许用户根据特定条件快速筛选和查找所需信息。表格过滤是提高用户体验和数据管理效率的重要工具,尤其在处理大量数据时。 在"ExtJs Filter ...
ExtJS Grid还支持组合过滤,即同时应用多个过滤器,可以通过`filters`配置项定义一组过滤规则,Grid将根据这些规则同时筛选数据。 **6. 状态保存与恢复** 为了提高用户体验,可以实现过滤状态的保存与恢复,例如在...
总的来说,EXTJS的树形搜索功能是通过结合TreePanel、TreeStore和过滤机制实现的,它提供了灵活的搜索选项,能够满足不同场景下的数据查找需求。通过深入理解和运用这些知识点,我们可以构建出功能强大、用户体验...
extjs增删改查分页树
### Extjs自定义组件——下拉树:深入解析与实现 在现代Web开发中,Extjs作为一款功能强大且灵活的框架,深受开发者喜爱。它提供了丰富的UI组件库,能够帮助开发者快速构建复杂的用户界面。其中,自定义组件是Extjs...
EXT TreeFilter插件是EXT库中的一个强大工具,主要用于增强EXT的Tree组件的功能,特别是针对树形结构数据的快速搜索和过滤。EXT Tree是EXT框架中用于展示层次结构数据的组件,它通常用于构建具有多级目录结构的应用...
extjs 可编辑的表格树,每个单元格自定义编辑组件,可以自适应列宽,只有源码与例子,运行实例要修改路径,不然图片不能显示,注意etree.jsp的js引入路径 支持Ext2.x以上版本 如运行不了EmailTo : codeme9@gmail....
ExtJS提供了丰富的组件和布局选项,你可以根据需求调整界面设计。 8. **异步上传**: 考虑使用Ajax进行异步上传,这样用户可以在等待上传完成的同时继续使用应用的其他功能。你可以利用ExtJS的`Ajax`类或`form....
extjs异步树,多选树,json数据机构,集成spring,struts例子,extjs异步树,多选树,json数据机构,集成spring,struts例子,extjs异步树,多选树,json数据机构,集成spring,struts例子,extjs异步树,多选树,json...
这是利用sencha cmd 生成的GridFilterDemo工程中的app和build文件夹,其余文件过大并且与主题无关,因此未包含。具体方法,请参看我的博客: 《Extjs4.2 Grid Filter Feature 表格过滤特性》
在EXTJS4中,实现一个下拉树(Combobox Tree)并支持多选和复选功能,主要是通过自定义组件(Ext....在实际开发中,可以将此组件引入到你的EXTJS应用中,然后根据项目的实际数据模型和业务逻辑进行相应的定制和扩展。
标题中的“EXTJS动态树支持checkbox全选”指的是EXTJS中树组件的一个特性,即在树形结构中添加复选框(checkbox)功能,并支持全选和全取消选中操作。这样的功能对于需要用户进行多项选择的场景非常有用,比如文件...
7. **事件处理**:ExtJS提供丰富的事件系统,例如`checkchange`事件可以在节点的复选状态改变时触发,使得开发者可以根据用户的选择进行相应的业务逻辑处理。 8. **API配置**:使用ExtJS API可以进一步定制组件的...
ExtJS 是一个强大的JavaScript 框架,专用于构建富客户端Web应用程序。它提供了一整套组件库,包括用于创建复杂布局、数据绑定、...在实际开发中,应根据项目需求和性能考虑,合理配置和优化动态树的相关属性和行为。
ExtJs4.2没有直接提供下拉树这个组件,但是有例子可以用,文件位置:ext-4.2.1.883\examples\ux\TreePicker.js 但是它有点小毛病吧:默认显示了根节点;达到最小高度时再展开节点,高度不能自动调整。 所以我做了一...
总之,"树结点过滤 拼或者汉字都可以 TreeFilter"涉及到的是在JavaScript环境中,特别是使用ExtJS等库时,如何利用`TreeFilter`功能来实现在树形结构中对节点的拼音或汉字过滤,提高用户在操作树形数据时的效率和...
同时,如果实现了查询功能,服务器还需要能够根据查询条件过滤数据。 综上所述,"Extjs2分页树 带查询功能"是一个复杂的实现,需要对ExtJS的组件、存储、数据模型以及异步加载机制有深入理解。通过这个实现,开发者...