我正在使用FiltersFeature
:
this.features = {
ftype: 'filters',
encode: false,
local: true
};
我想访问我桌面上的当前过滤器。 IE浏览器。不是过滤器配置对象,而是用户对表所做的更改(我想将其保存在数据库中)。
网格上有一个过滤器对象,但它只是从所有列中提供过滤器配置。
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'
}
}
任何人都知道我可以在哪里获得此信息吗?
答案 0 :(得分:3)
我发现答案是使用这种方法:)
myTableGrid.filters.getFilterData()
我得到这样的东西:
v = [{
"field": "myColumn1",
"data": {
"type": "string",
"value": "anna"}
}, {
"field": "myColumn2_fixedvalue",
"data": {
"type": "list",
"value": [60]}
}]
答案 1 :(得分:0)
过滤器不包含任何值。 您应该从网格中解析实际值。
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"}]