0

我正在尝试创建远程多排序。

字段用逗号分隔。

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();

}
}

});
4

0 回答 0