Хобрук: Ваш путь к мастерству в программировании

ExtJS: datagrid: повторно применить сортировку/обновление после загрузки

Я так долго искал это, и (с моей точки зрения) это базовое поведение, которое нужно было сделать давным-давно: вы сортируете сетку по столбцу, скажем, «NAME» , вы изменяете запись, имя "AAA" становится "ZZZ", оно отправляется на сервер, сервер отвечает "ok" "ZZZ", поэтому значение обновляется, но остается на том же месте , т.е. порядок сортировки не обновляется.

Есть ли способ сделать это автоматически? Какое событие, какой код? Как?

02.05.2012

Ответы:


1

Вы можете явно вызвать метод хранилища, как только получите «ОК» с сервера. что-то типа:

myStore.sort("name","ASC");

Или, если у вас есть коллекция столбцов сортировки, вы можете использовать свойство sorters, доступное в магазине. Нравиться:

myStore.sort(myStore.sorters); // this uses the existing sorting rules applied to the store

Надеюсь это поможет.

02.05.2012
  • +1 для меня myStore.sort("name","ASC"); ваше первое решение работает безупречно. тогда как второй нет. Я думаю, что у вас, 2-й, есть какая-то ошибка. Поскольку я новичок в ext.js, я не смог в этом разобраться. Я постараюсь, и если я найду это, я дам вам знать. В любом случае, спасибо. 21.02.2014
  • @Praveen Чтобы второе решение работало, вам нужно определить сортировщики в магазине следующим образом: sorters: [{ property: 'name', direction: 'ASC' }] 21.04.2015

  • 2

    Я спросил на Форум Сенчи, и впервые в истории я получил там ответ на stackoverflow. Итак, чтобы поделиться ответом, вот мой код, который работает:

    Ext.define('Ext.data.StoreHandleErrors', {
        extend: 'Ext.data.Store',
        alias: 'data.storehandleerrors',
    
        constructor: function(config) {
            this.callParent([config]);
    
            this.on(
                'write',
                function(me, opts) {
                    this.sort();
                },
                this
            );
        }
    });
    

    Объяснение: я переопределяю конструктор, чтобы каждый раз, когда вызывается событие «запись», то есть каждый раз, когда запись отправляется на сервер, это повторно сортировало хранилище, чтобы мы всегда были уверены, что оно правильно обновлено. Это общий метод, который может быть «слишком много» (= нет необходимости повторно сортировать для каждой записи), но (1) он работает для всех хранилищ (2 ) не нужно создавать пользовательские жестко закодированные вещи, как предложил Абдель (хотя ответ Абделя может быть более подходящим, чтобы сделать это только один раз в определенном фрагменте кода).

    03.05.2012
  • На самом деле я не могу понять ваш код. Было бы здорово, если бы вы добавили некоторые пояснения к своим. 21.02.2014
  • Новые материалы

    Dall-E 2: недавние исследования показывают недостатки в искусстве, созданном искусственным интеллектом
    DALL-E 2 — это всеобщее внимание в индустрии искусственного интеллекта. Люди в списке ожидания пытаются заполучить продукт. Что это означает для развития креативной индустрии? О применении ИИ в..

    «Очень простой» эволюционный подход к обучению с подкреплением
    В прошлом семестре я посетил лекцию по обучению с подкреплением (RL) в моем университете. Честно говоря, я присоединился к нему официально, но я редко ходил на лекции, потому что в целом я нахожу..

    Освоение информационного поиска: создание интеллектуальных поисковых систем (глава 1)
    Глава 1. Поиск по ключевым словам: основы информационного поиска Справочная глава: «Оценка моделей поиска информации: подробное руководство по показателям производительности » Глава 1: «Поиск..

    Фишинг — Упаковано и зашифровано
    Будучи старшим ИТ-специалистом в небольшой фирме, я могу делать много разных вещей. Одна из этих вещей: специалист по кибербезопасности. Мне нравится это делать, потому что в настоящее время я..

    ВЫ РЕГРЕСС ЭТО?
    Чтобы понять, когда использовать регрессионный анализ, мы должны сначала понять, что именно он делает. Вот простой ответ, который появляется, когда вы используете Google: Регрессионный..

    Не зря же это называют интеллектом
    Стек — C#, Oracle Опыт — 4 года Работа — Разведывательный корпус Мне пора служить Может быть, я немного приукрашиваю себя, но там, где я живу, есть обязательная военная служба на 3..

    LeetCode Проблема 41. Первый пропущенный положительный результат
    LeetCode Проблема 41. Первый пропущенный положительный результат Учитывая несортированный массив целых чисел, найдите наименьшее пропущенное положительное целое число. Пример 1: Input:..