我正在尝试创建远程多排序。
字段用逗号分隔。
MINUS 代表 DESC
示例 localhost:8080/api/?sort=id,-externalId&page=1&start=0&limit=200
当我在网格列配置中编写它时,headerclick 工作正常。
但是当我尝试创建 MultisortHeader 组件并使用 Ext.require 加载它时,我只看到白页。
没有错误,什么都没有。
请给我一个线索。谢谢。
控制器前
Ext.require([
'Ext.grid.*',
'Ext.data.*',
'Ext.util.*',
'Ext.ux.grid.header.MultisortHeader'
]);
零件
Ext.define('Ext.grid.header.MultisortHeader',
{ extend:'Ext.grid.header.Container',
alias:'widget.MultisortHeader',
requires: [
'Ext.grid.ColumnLayout',
'Ext.grid.column.Column',
'Ext.menu.Menu',
'Ext.menu.CheckItem',
'Ext.menu.Separator',
'Ext.grid.plugin.HeaderResizer',
'Ext.grid.plugin.HeaderReorderer'
],
initComponent:function () {
var me = this;
this.callParent(arguments);
},
listeners:{
headerclick:function (ct, column, e, el, opts) {
var dataIndex = column.dataIndex,
grid = this.up('grid'),
item,
sortline = '';
grid.remoteSorters = grid.remoteSorters || {};
grid.remoteSorters[dataIndex] = Ext.String.toggle(grid.remoteSorters[dataIndex], 'ASC', 'DESC');
for (item in grid.remoteSorters) {
if (grid.remoteSorters[item] == 'DESC') {
sortline += '-';
}
sortline += item;
sortline += ',';
}
if (sortline.charAt(sortline.length - 1) == ',') {
var sortlineTrim = sortline.substring(0, sortline.length - 1);
} else {
sortlineTrim = sortline;
}
var store = grid.getStore();
var proxy = store.getProxy();
proxy.extraParams.sort = sortlineTrim;
store.load();
}
}
});