2015-04-02 5 views
1

В ExtJs 5 при добавлении новой строки в сетку, которая уже отсортирована, новая строка никогда не добавляется в верхнюю часть сетки. Возможно ли, чтобы хранилище игнорировало фантомную запись во время сортировки и всегда добавляло ее в верхнюю/или любую другую позицию, которую мы укажем?ExtJs 5 Сортировка сетки фантомными записями

ответ

1

Нет. Обоснование, которое я прочитал, состоит в том, что это намеренно, потому что хранилище может быть либо сортировано, либо несортировано, а не какое-либо промежуточное состояние (ответ на сортировку хранилища должен быть «истинным» или «ложным» «). Если в магазине есть сортировщики, он будет организован. Сенча не будет изменять это поведение.

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

var store = myStore, 
    sorters = store.getSorters(); 

if (sorters.getCount()) { 
    console.log('[' + store.$className + '] Removed Existing Sorters', { 
     store: store, 
     sorters: sorters 
    }); 
    sorters.removeAll(); 

    store.fireEvent('refresh', store); // will remove sort icon from grid column headers 
} 

store.insert(newRowIndex, newRec) 
+0

Я думаю, это один простой способ вокруг. – Yellen

+0

Существует еще один вариант. :) – Yellen

+1

Мы должны добавить следующие объекты в магазин: autoSort: false – Yellen

1

следует добавить следующее свойство в магазине:

autoSort: ложные