在 Ext Js 网格过滤器中未选中过滤器菜单的复选框时触发事件?
Trigger an event when filter menu's checkbox is unchecked in Ext Js grid filters?
我一直在使用 gridfilters 插件来显示我的 table。目前,每当列菜单的过滤器发生更改时,我都会应用自定义远程过滤器,由 "filterchange" 事件触发。在主视口上:
xtype: 'gridpanel',
title: 'Autopilot Monitor',
titleAlign: 'center',
store: 'AutopilotQueueStore',
id: 'grid',
plugins: 'gridfilters',
maxRows: 20,
selModel: {
selType: 'cellmodel',
mode: 'SINGLE'
},
listeners: {
filterchange: 'onFilterChange'
},
每当我填写过滤器的菜单字段时,都会调用 filterchange 事件并应用过滤器。同时,当字段被填充时,过滤器的菜单复选框被选中。虽然,当我取消选中过滤器菜单复选框时,没有调用任何事件(甚至没有调用 filterchange)。
我需要捕获一个事件,以便在复选框的状态发生更改(选中或未选中)时调用。我怎样才能做到呢?我的控制器:
onFilterChange: function (store, filters, e) {
console.log(checkbox);
var store = Ext.getStore('AutopilotQueueStore');
var cmp = Ext.getCmp('id');
Ext.override(Ext.grid.filters.Filters, { filterCls: Ext.baseCSSPrefix });
store.clearFilter();
var filter = filters[0];
var txt = ""
Ext.getCmp('filterTextField').setValue("");
if (filter != undefined) {
store.getProxy().extraParams = {
filterColumn: filter.getValue() + "," + filter.getProperty(),
filter: ''
}
}
else {
store.getProxy().extraParams = {
filterColumn: txt,
filter: ''
}
}
您可以使用其他侦听器获取此事件,您可以使用 filteractivate
在用户激活(或选中复选框)过滤器时触发,并在用户停用(或取消选中)时使用 filterdeactivate
复选框)过滤器
我一直在使用 gridfilters 插件来显示我的 table。目前,每当列菜单的过滤器发生更改时,我都会应用自定义远程过滤器,由 "filterchange" 事件触发。在主视口上:
xtype: 'gridpanel',
title: 'Autopilot Monitor',
titleAlign: 'center',
store: 'AutopilotQueueStore',
id: 'grid',
plugins: 'gridfilters',
maxRows: 20,
selModel: {
selType: 'cellmodel',
mode: 'SINGLE'
},
listeners: {
filterchange: 'onFilterChange'
},
每当我填写过滤器的菜单字段时,都会调用 filterchange 事件并应用过滤器。同时,当字段被填充时,过滤器的菜单复选框被选中。虽然,当我取消选中过滤器菜单复选框时,没有调用任何事件(甚至没有调用 filterchange)。
我需要捕获一个事件,以便在复选框的状态发生更改(选中或未选中)时调用。我怎样才能做到呢?我的控制器:
onFilterChange: function (store, filters, e) {
console.log(checkbox);
var store = Ext.getStore('AutopilotQueueStore');
var cmp = Ext.getCmp('id');
Ext.override(Ext.grid.filters.Filters, { filterCls: Ext.baseCSSPrefix });
store.clearFilter();
var filter = filters[0];
var txt = ""
Ext.getCmp('filterTextField').setValue("");
if (filter != undefined) {
store.getProxy().extraParams = {
filterColumn: filter.getValue() + "," + filter.getProperty(),
filter: ''
}
}
else {
store.getProxy().extraParams = {
filterColumn: txt,
filter: ''
}
}
您可以使用其他侦听器获取此事件,您可以使用 filteractivate
在用户激活(或选中复选框)过滤器时触发,并在用户停用(或取消选中)时使用 filterdeactivate
复选框)过滤器