如何从 Filtersfeature 获取我的过滤器
How do I get my Filters from Filtersfeature
我正在使用 FiltersFeature
:
this.features = {
ftype: 'filters',
encode: false,
local: true
};
我想在 table 上访问我当前的过滤器。 IE。不是过滤器配置对象,而是用户对 table 所做的更改(我想将其保存在数据库中)。
网格上有一个过滤器对象,但它只为我提供了所有列的过滤器配置。
handler: function (btn) {
var grid = btn.up('grid');
grid.filters
}
我需要实际值。我正在寻找这样的东西:
var v = {
filter: {
column: 'name',
value: 'bob'
},
filter: {
column: 'date',
value1: '11.11.11',
value2: '12.12.12'
}
}
有人知道我在哪里可以得到这些信息吗?
过滤器不包含任何值。
您应该从网格中解析实际值。
var columnTitle = [];
var fieldName = [];
var data = [];
var visibleColumns = grid.query('gridcolumn:not([hidden])');
visibleColumns.forEach(function(c) {
columnTitle.push(c.text);
fieldName.push(c.dataIndex);
});
for (rowIndex = 0; rowIndex < grid.store.getCount(); rowIndex++) {
var row = grid.getView().getRow(rowIndex);
var fieldValues = Ext.fly(row).query('div.x-grid-cell-inner');
var map = {}
for (colIndex = 0; colIndex < fieldName.length; colIndex++) {
map[fieldName[colIndex]] = fieldValues[colIndex].textContent;
}
data.push(map);
}
因此,您将得到一个对象数组,类似于
[{"user.login":"iivanov","email":"ivanov@mail.com"},{"user.login":"ppetrov","email":"petrov@mail.com"},{"user.login":"plosev","email":"elk@gmail.com"}]
我找到的答案是使用这个方法:)
myTableGrid.filters.getFilterData()
我得到这样的结果:
v = [{
"field": "myColumn1",
"data": {
"type": "string",
"value": "anna"}
}, {
"field": "myColumn2_fixedvalue",
"data": {
"type": "list",
"value": [60]}
}]
我正在使用 FiltersFeature
:
this.features = {
ftype: 'filters',
encode: false,
local: true
};
我想在 table 上访问我当前的过滤器。 IE。不是过滤器配置对象,而是用户对 table 所做的更改(我想将其保存在数据库中)。
网格上有一个过滤器对象,但它只为我提供了所有列的过滤器配置。
handler: function (btn) {
var grid = btn.up('grid');
grid.filters
}
我需要实际值。我正在寻找这样的东西:
var v = {
filter: {
column: 'name',
value: 'bob'
},
filter: {
column: 'date',
value1: '11.11.11',
value2: '12.12.12'
}
}
有人知道我在哪里可以得到这些信息吗?
过滤器不包含任何值。 您应该从网格中解析实际值。
var columnTitle = [];
var fieldName = [];
var data = [];
var visibleColumns = grid.query('gridcolumn:not([hidden])');
visibleColumns.forEach(function(c) {
columnTitle.push(c.text);
fieldName.push(c.dataIndex);
});
for (rowIndex = 0; rowIndex < grid.store.getCount(); rowIndex++) {
var row = grid.getView().getRow(rowIndex);
var fieldValues = Ext.fly(row).query('div.x-grid-cell-inner');
var map = {}
for (colIndex = 0; colIndex < fieldName.length; colIndex++) {
map[fieldName[colIndex]] = fieldValues[colIndex].textContent;
}
data.push(map);
}
因此,您将得到一个对象数组,类似于
[{"user.login":"iivanov","email":"ivanov@mail.com"},{"user.login":"ppetrov","email":"petrov@mail.com"},{"user.login":"plosev","email":"elk@gmail.com"}]
我找到的答案是使用这个方法:)
myTableGrid.filters.getFilterData()
我得到这样的结果:
v = [{
"field": "myColumn1",
"data": {
"type": "string",
"value": "anna"}
}, {
"field": "myColumn2_fixedvalue",
"data": {
"type": "list",
"value": [60]}
}]