[Ext插件]QM.plugin.MutilTreeFilter:为树添加过滤、展开、收缩功能

先来看看Ext的官方API的左上角
[img]http://dl.iteye.com/upload/attachment/243061/abd3e241-75c3-38bb-8dce-b0aa487b169e.png[/img]
本插件基于Ext3.0 可以非常轻松的实现上面的功能,你只需要为你的树配置一下插件,例如:

plugins: ['multifilter'],

本插件使用了笔者以前做的树过滤组件QM.ux.TreeFilter,最大的特点就是同时支持[color=red]拼音首字母和汉字模糊匹配[/color],详细信息可以参考:[url]http://chemzqm.iteye.com/blog/653530[/url]
[b]示例效果:[/b]
[img]http://dl.iteye.com/upload/attachment/243069/285cb5e4-ef6c-3bf4-a4f2-a4db7d8a165d.png[/img]
[b]核心代码:[/b]

/**
* 多功能树过滤插件,为TreePanel的tbar添加一个具备拼音和汉字双重过滤功能的textfield
*
* 依赖:QM.ux.TreeFilter、QM.lib
*
* 注意:tbar是无法动态创建的,请确保构造树的时候配置了tbar属性
*
* v1.1:修复3.1下tbar无法显示的问题
*
*/
QM.plugin.MutilTreeFilter = Ext.extend(Object, {
index: 0,//输入域插入tbar的位置索引
clearAction:'expand',//树节点全部显示时状态,默认全部展开
width:120,//输入域宽度
enableButtons:true,//是否添加收缩和展开按钮
ignoreFolder:true,//过滤时忽略父节点

constructor:function(config){
Ext.apply(this,config);
},
init: function(tree){
tree.on('afterrender', this.onRender, this);
this.filter = new QM.ux.TreeFilter(tree, {
clearAction: this.clearAction,
ignoreFolder: this.ignoreFolder
});
},
onRender: function(tree){
var tbar = tree.getTopToolbar();
var field = new Ext.form.TextField({
width: this.width,
emptyText: '快速检索',
enableKeyEvents: true,
listeners: {
keyup: {//添加键盘点击监听
fn: function(t, e){
this.filter.filter(t.getValue());
},
buffer: 350,
scope:this
}
}
});
if (this.enableButtons) {
tbar.insertButton(this.index, [' ', ' ', {
iconCls: 'icon-expand-all',
tooltip: '全部展开',
handler: function(){
tree.root.expand(true);
}
}, '-', {
iconCls: 'icon-collapse-all',
tooltip: '全部收缩',
handler: function(){
tree.root.collapse(true);
}
}]);
}
tbar.insert(this.index,field);
tbar.doLayout();
}
});
Ext.preg('multifilter', QM.plugin.MutilTreeFilter);

示例直接放到Ext根目录下即可用浏览器打开查看,有什么问题请给我email :D
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值