请见图,当我进行列过滤的时候,如果不取消filter的勾选,而点击左面的资源组,那么filter条件并没有自动删除。请问应该怎么设置,当点击左面资源组的时候,默认把没有去掉的filter都删除掉。谢谢。
1条回答 默认 最新
- weixin_42297586 2009-02-05 16:41关注
我是直接在ExtJS提供的filter上改的
在GridFilter.js的onCheckChange函数中将非当前的filter去掉
代码大概是这样:
onCheckChange: function(item, value) {
var filters = this.filters;
var filters_items = filters.items;
var filtersCount = filters.getCount();var filter = this.getMenuFilter(); if ( !filter.showed )//show是在listfilter中增加的 { return false; } for (var index = 0; index < filtersCount; index++ ) { var subFilter = filters_items[index]; if (filter != subFilter) { subFilter.setActive(false); } } if (filter.loaded) { var menu = filter.menu; var menu_items = menu.items; var menuCount = menu_items.getCount(); var menuItem = menu_items.items; for ( var menuIndex = 0; menuIndex < menuCount; menuIndex++ ) { var subMenu = menuItem[menuIndex]; if (!filter.active || !value) { subMenu.suspendEvents(); subMenu.setChecked( value ); subMenu.resumeEvents(); } } } filter.setActive(value); },
不知道对你有没有用
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报