Jump to content

Удаленная сортировка (в браузере) по дате


x11

Recommended Posts

Добавляю в событии UniFrameCreate

uniDBGrid1.ClientEvents.UniEvents.Values['store.afterCreate'] :=  'function store.afterCreate(sender) { sender.setRemoteSort(true);}';

Screenshot_24.jpg.f8af478f9c0644ec3dbdcd22cc7d5198.jpgScreenshot_23.jpg.8fc02dc52cf8dd5b311e7988448e788b.jpg

 

 

Link to comment
Share on other sites

  • x11 changed the title to Удаленная сортировка (в браузере) по дате
26 minutes ago, x11 said:

uniDBGrid1.ClientEvents.UniEvents.Values['store.afterCreate'] := 'function store.afterCreate(sender) { sender.setRemoteSort(true);}';

Вы должны также "учесть" событие OnColumnSort. 

Link to comment
Share on other sites

Тогда это включит сортировку данных на сервере? А проблема в браузерной сортировке.

Т.е. в качестве решения проблемы с сортировкой вы хотите отключить сортировку? Разве это решение проблемы? Это все равно что предложить не использовать какую-то функцию, если в этой функции есть ошибка.

 

 

Link to comment
Share on other sites

2 hours ago, x11 said:

Т.е. в качестве решения проблемы с сортировкой вы хотите отключить сортировку? Разве это решение проблемы? Это все равно что предложить не использовать какую-то функцию, если в этой функции есть ошибка.

)) Я ничего еще не хотел отключить.

 

2 hours ago, x11 said:

А проблема в браузерной сортировке.

Да, проблема в "браузерной" сортировке (setRemoteSort(false))

 

А при удаленной сортировке - на стороне сервера (setRemoteSort(true)), проблем нет.

Link to comment
Share on other sites

так-с.... я запутался... и вас запутал. Извиняюсь.

Вы правы, т.е. если я использую FALSE (в браузере):

function store.afterCreate(sender) { sender.setRemoteSort(false);}

то проблема есть.

 

А если я использую TRUE (на сервере):

function store.afterCreate(sender) { sender.setRemoteSort(true);}

то проблемы нет, т.к. сортировка происходит на сервере с помощью SQL-запроса.

Я правильно понимаю, что exJS некорректно сортирует поле типа DateTime? Может надо как-то "подсказать" фреймворку, что это поле типа DateTime?

 

Link to comment
Share on other sites

24 minutes ago, x11 said:

Я правильно понимаю, что exJS некорректно сортирует поле типа DateTime? Может надо как-то "подсказать" фреймворку, что это поле типа DateTime?

Всё верно. 

Также был аналогичный вопрос на форуме. Я постараюсь проанализировать. 

 

Link to comment
Share on other sites

11 hours ago, x11 said:

Screenshot_24.jpg.f8af478f9c0644ec3dbdcd22cc7d5198.jpg

function reconfigure(sender, store, columns, oldStore, oldColumns, eOpts) 
{
    sender.getStore().setRemoteSort(false);
    
    columns.forEach(function(col) {  
       if (col.ct == "datetime" && col.sortable && sender.getStore().remoteSort == false) {
            col.setSorter({
                sorterFn: function(o1, o2) {
                    var v1 = Ext.Date.parse(o1.get(col.dataIndex), 'd.m.Y G:i:s');
                    var v2 = Ext.Date.parse(o2.get(col.dataIndex), 'd.m.Y G:i:s');
                    return v1 > v2 ? 1 : (v1 < v2 ? -1 : 0)
                }
            });
        }
    });
}

 

  • Like 1
Link to comment
Share on other sites

  • 2 years later...

Добрый день.

reconfigure

Куда добавлять, прям в таблицу?...и ее в связке с этим использовать?
 

uniDBGrid1.ClientEvents.UniEvents.Values['store.afterCreate'] :=  'function store.afterCreate(sender) { sender.setRemoteSort(false);}';
Link to comment
Share on other sites

On 4/27/2021 at 10:29 PM, Sherzod said:
function reconfigure(sender, store, columns, oldStore, oldColumns, eOpts) 
{
    sender.getStore().setRemoteSort(false);
    
    columns.forEach(function(col) {  
       if (col.ct == "datetime" && col.sortable && sender.getStore().remoteSort == false) {
            col.setSorter({
                sorterFn: function(o1, o2) {
                    var v1 = Ext.Date.parse(o1.get(col.dataIndex), 'd.m.Y G:i:s');
                    var v2 = Ext.Date.parse(o2.get(col.dataIndex), 'd.m.Y G:i:s');
                    return v1 > v2 ? 1 : (v1 < v2 ? -1 : 0)
                }
            });
        }
    });
}

Можете попробовать использовать только этот код.

  • Like 1
Link to comment
Share on other sites

Ну всякий случай уточню...этот код я добавляю как собственное событие для таблицы в ExtEvents?

А для столбца sorted включали? 

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...