请见图,当我进行列过滤的时候,如果不取消filter的勾选,而点击左面的资源组,那么filter条件并没有自动删除。请问应该怎么设置,当点击左面资源组的时候,默认把没有去掉的filter都删除掉。谢谢。
我是直接在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);
},
不知道对你有没有用