如何修改字符串过滤器中输入的值
How to modify entered value in string filter
我的网格中有一个用于 3 列的字符串过滤器。这工作正常。在数据索引为 abc
的第三列中,我想修改输入的值。
例如,如果我按 0,它会过滤所有具有 0 的数据。我想按 'No' 而不是 0 进行过滤。同样,我想使用 'Yes' 而不是 1 来过滤数据 1.
我创建过滤器的代码。
this.filters = new Ext.ux.grid.GridFilters({
filters: this.filter,
local: true,
autoReload: false,
});
this.features = [this.filters];
this.plugins = [this.filters];
用于插入过滤器的代码。
gridEl.filter.push({
type: header.getAttribute("FILTER"),
dataIndex: header.getAttribute("DATAINDEX"),
encode: false,
metaID: header.getAttribute("M"),
});
感谢您的帮助。
按照你的例子http://docs.sencha.com/extjs/4.2.0/extjs-build/examples/grid-filtering/grid-filter-local.html
创建您自己的 BooleanFilter 并添加您的条件。请参阅下面的代码段。
Ext.define('MyFilter.CustomBooleanFilter', {
extend: 'Ext.ux.grid.filter.StringFilter',
alias: 'gridfilter.customboolean',
validateRecord : function (record) {
var rValue = record.get(this.dataIndex),
fValue = this.getValue();
return rValue == fValue || rValue == (fValue == "1" || "true".indexOf(fValue.toLowerCase()) == 0 || "yes".indexOf(fValue.toLowerCase()) == 0);
}
});
在此处查看工作演示。 https://fiddle.sencha.com/#fiddle/1f5l
如果您不需要这个,请告诉我。我按照我的理解做了
编辑:但我觉得如果这是你想要的,那么使用 Boolean Filter 来更改你想要的文本。比如是和否。它比输入更方便用户。因为你只有两个值。
我的网格中有一个用于 3 列的字符串过滤器。这工作正常。在数据索引为 abc
的第三列中,我想修改输入的值。
例如,如果我按 0,它会过滤所有具有 0 的数据。我想按 'No' 而不是 0 进行过滤。同样,我想使用 'Yes' 而不是 1 来过滤数据 1.
我创建过滤器的代码。
this.filters = new Ext.ux.grid.GridFilters({
filters: this.filter,
local: true,
autoReload: false,
});
this.features = [this.filters];
this.plugins = [this.filters];
用于插入过滤器的代码。
gridEl.filter.push({
type: header.getAttribute("FILTER"),
dataIndex: header.getAttribute("DATAINDEX"),
encode: false,
metaID: header.getAttribute("M"),
});
感谢您的帮助。
按照你的例子http://docs.sencha.com/extjs/4.2.0/extjs-build/examples/grid-filtering/grid-filter-local.html 创建您自己的 BooleanFilter 并添加您的条件。请参阅下面的代码段。
Ext.define('MyFilter.CustomBooleanFilter', {
extend: 'Ext.ux.grid.filter.StringFilter',
alias: 'gridfilter.customboolean',
validateRecord : function (record) {
var rValue = record.get(this.dataIndex),
fValue = this.getValue();
return rValue == fValue || rValue == (fValue == "1" || "true".indexOf(fValue.toLowerCase()) == 0 || "yes".indexOf(fValue.toLowerCase()) == 0);
}
});
在此处查看工作演示。 https://fiddle.sencha.com/#fiddle/1f5l
如果您不需要这个,请告诉我。我按照我的理解做了 编辑:但我觉得如果这是你想要的,那么使用 Boolean Filter 来更改你想要的文本。比如是和否。它比输入更方便用户。因为你只有两个值。