EXTJS4扩展实例:如何使用filter查询treepanel
来源:互联网 发布:win10网络连接不可用 编辑:程序博客网 时间:2024/04/27 23:26
原文出自:
http://www.cnblogs.com/zdkjob/p/3593515.html
我们在使用普通的store时,extjs提供了filterBy,filter等多种方法来过滤数据达到查询效果,
但在treepanel中的streeStore却没有实现这个查询,于是,就有了这篇文章。
首先定义一个类'MyExtend.lib.TreeFilter'
Ext.define('MyExtend.lib.TreeFilter', { filterByText: function(text) { this.filterBy(text, 'text'); }, /** * 根据字符串过滤所有的节点,将不符合条件的节点进行隐藏. * @param 查询字符串. * @param 要查询的列. */ filterBy: function(text, by) { this.clearFilter(); var view = this.getView(), me = this, nodesAndParents = []; // 找到匹配的节点并展开. // 添加匹配的节点和他们的父节点到nodesAndParents数组. this.getRootNode().cascadeBy(function(tree, view) { var currNode = this; if (currNode && currNode.data[by] && currNode.data[by].toString().toLowerCase().indexOf(text.toLowerCase()) > -1) { me.expandPath(currNode.getPath()); while (currNode.parentNode) { nodesAndParents.push(currNode.id); currNode = currNode.parentNode; } } }, null, [me, view]); // 将不在nodesAndParents数组中的节点隐藏 this.getRootNode().cascadeBy(function(tree, view) { var uiNode = view.getNodeByRecord(this); if (uiNode && !Ext.Array.contains(nodesAndParents, this.id)) { Ext.get(uiNode).setDisplayed('none'); } }, null, [me, view]); }, clearFilter: function() { var view = this.getView(); this.getRootNode().cascadeBy(function(tree, view) { var uiNode = view.getNodeByRecord(this); if (uiNode) { Ext.get(uiNode).setDisplayed('table-row'); } }, null, [this, view]); }});
接下来定义一个你自己的treepanel,并混入这个类
Ext.define('MyTreePanel',{ extend:'Ext.tree.Panel', mixins:['MyExtend.lib.TreeFilter'] });
后面的代码我就省略了,用你定义的MyTreePanel来生成一个treepanel,
然后使用treepanel.filterByText('xxx') 或treepanel.filterBy('xxx','列名') 进行过滤查询。
0 0
- EXTJS4扩展实例:如何使用filter查询treepanel
- Extjs4 TreePanel实例
- ExtJS4 TreePanel实例
- EXTJs4 TreePanel
- EXTJS4 之 TreePanel
- EXTJS4之TreePanel
- ExtJS4 TreePanel extraParams传参
- ExtJs4 TreePanel学习
- ExtJs4 之 TreePanel
- Extjs4之TreePanel、TreeGrid
- Extjs4之 treepanel 操作
- ExtJS4 TreePanel简单实现
- ExtJs4.0 TreePanel+CheckBox全选
- Extjs4 treePanel + checkbox 级联选中
- ExtJS4 TreePanel 加载数据 J2EE
- Extjs4---treepanel+struts2异步加载
- extjs4-treepanel字体遮挡解决办法
- extjs4 treepanel左右键事件
- java的另类突破——桌面级应用开发
- elasticsearch学习总结——安装篇
- java中&&和&的区别
- Java main方法调用内部类
- 函数中的关键字及作用域
- EXTJS4扩展实例:如何使用filter查询treepanel
- 开发如何选择。。。网银在线,快钱,支付宝,财付通
- python基础教程_学习笔记17:标准库:一些最爱——time
- Linux下logrotate 配置
- SELECT * FROM shop s1 WHERE price = (SELECT MAX(price) FROM shop s2 WHERE s1.article=s2.article);
- 大小端存储判断
- python socket 实现服务器/客户端通信
- Ext与spring mvc集成时间格式问题处理
- MFC 工具栏的自定义创建