Jump to content

Не отключается браузерная сортировка


x11

Recommended Posts

Включаю удаленную (браузерную) сортировку.

Пользователь щелкает по заголовкам и данные в сетке сортируются.

Потом нужно всю сортировку отменить (сбросить к прежнему виду), другими словами, привести данные в сетке в прежний вид, как было до сортировки.

procedure ClearSort(grid: TUniDBGrid);
begin
//  UniSession.AddJS(grid.JSName + '.getStore().sorters.clear(); ' + grid.JSName + '.view.refresh();' );
  UniSession.AddJS(grid.JSName + '.getStore().sorters.clear();');
  UniSession.AddJS(grid.JSName + '.view.refresh();');
end;

При этом, скрываются только маркеры (треугольники), а сами данные остаются отсортированными. Т.е. фактически отмена сортировки не происходит.

Пример брал отсюда, но он старый. Судя по примеру, сортировка не отменяется. Может в extJS за 7 лет уже появилась возможность возвращать данные в сетке в прежний вид, как до сортировки?

Спасибо.

Link to comment
Share on other sites

10 hours ago, x11 said:

Потом нужно всю сортировку отменить (сбросить к прежнему виду), другими словами, привести данные в сетке в прежний вид, как было до сортировки.

Один из возможных решений:

procedure TMainForm.UniButton1Click(Sender: TObject);
begin
  with UniDBGrid1.JSInterface do
  begin
    JSCall('getStore().sorters.clear', []);
    JSCall('getStore().reload', []);
  end;
end;

 

  • Like 1
Link to comment
Share on other sites

вообще возвращать из базы не сортированные данные дурной тон, т.е они все равно как-то сортированы, обычно исходя из расположения записей в БД если совсем ORDER BY не писать. Т.е я обычно первоначально возвращаю сразу сортированные записи по нужному полю, либо просто по primary key, и сразу ставлю значок на колонке что данные отсортированы.

Link to comment
Share on other sites

Можно и не загружать серверную часть, просто зная по какому полю была сортировка до начала "сортировки", можно очистить и применить сортировку на клиентской стороне по "умолчанию". 

Link to comment
Share on other sites

абсолютно не дурной, первый раз о таком слышу

зачем лишний раз нагружать сервер

я согласен, что есть случаи, когда нужно выдавать данные в отсортированном виде, но если ты не знаешь, в каком виде нужны данные пользователю, то какой смысл

Link to comment
Share on other sites

4 minutes ago, Sherzod said:

Можно и не загружать серверную часть

К сожалению, сетка extJS+uniGUI реализованы так, что сортировка и фильтрация работают только с учетом данных текущей страницы.

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...