как изменить направление сортировки в sortchange EXT - PullRequest
1 голос
/ 19 сентября 2019

Я использую 4.2 EXT, и мне нужно использовать слушатель sortchange для обработки сортировки столбцов, потому что некоторые столбцы показывают значение при рендеринге.

Так что мне приходится обрабатывать сортировку в sortchange, она работаетидеально, когда я щелкаю значок сортировки в меню в заголовке (ASC / DESC), но когда я щелкаю заголовок для сортировки, направление сортировки всегда показывает «ASC» каждый раз.

Все, что я хочуи щелчок по значку сортировки, и щелчок по заголовку могут выполнить обычную сортировку

Я проверил свой код, я не установил сортировку по умолчанию со значением "ASC", хотя.

Я сделал примерв скрипке, пожалуйста, посетите ее

Нажмите здесь !

я обнаружил, что если я удалю grid.store.sort ({sorterFn: sortingDate, direction: dir});правильное направление будет показано, но я должен использовать этот метод для сортировки

          var panel = Ext.create('Ext.grid.Panel', {
    id : "Panel",
    store : Ext.create('Ext.data.ArrayStore', {
        fields : fnDefineReqListData()
    }),
    columns : fnDefineReqListColumn()
    scroll : true,
    layout : 'fit',
    autoScroll : true,
    viewConfig : {
        stripeRows : false
    },
    disableSelection : true,
    listeners : {

        sortchange : function(thisGrid, sortinfo) {

            var grid = Ext.getCmp("Panel");
            /*
             * grid.store.sort(storeSorter); return;
             */
            var sorter = grid.store.sorters.getAt(0);
            var sort = sorter.property;
            var dir = sorter.direction;
             **// sorter.direction here always return ASC**

                 grid.store.sort({
                        sorterFn : sortingDate,
                        direction : dir
                    });

        }
});

1 Ответ

1 голос
/ 19 сентября 2019

Во время ручной сортировки вы должны сохранить направление и переключать его.Это решит проблему.

Для образца скрипта я использовал sessionStorage, если вы хотите, вы можете использовать конфиги для сохранения направления и переключения его.

sessionStorage.sortState = sessionStorage.sortState === 'ASC' ? 'DESC' : 'ASC';

grid.store.sort({
    sorterFn : sorting,
    direction : sessionStorage.sortState
});

Здесь вы можете найти рабочую скрипку

...