Пока что такое решение:
//get store var store = grid.getStore(); //get current record by row index var rec = store.getAt(rowIndex); //delete (autosync do all job) store.remove(rec); //reload store store.reload(); Соответственно, это еще +1 запрос после удаления на получение списка снова, что не очень радует. |
Цитата:
обновляет toolbar простенький пример https://fiddle.sencha.com/#fiddle/1i3e нажми кнопку Удалить первую строку - обновится только данные в примере из статического json берутся, поэтому сами данные, которые через ajax запрашиваются, не обновляется |
Хм... а у меня в 6.0.1 почему-то всегда выпадает значение в getTotalCount() ДО удаления. Лишь в count() реальное значение, но там только видимые данные, в пагинации.
|
В общем, ребят, так я и не пойму как store объявлять без ViewModel.:help:
Лезем в доку и видим, что можно передавать storeId что в грид, что в тулбар: http://docs.sencha.com/extjs/6.2.0/c...html#cfg-store http://docs.sencha.com/extjs/6.2.0/c...html#cfg-store Ок. Прописываем у store следующее: storeId: 'employees1', Пишем `store: 'employees1'` в тулбаре и гриде и получаем ошибку: TypeError: store is undefined Хорошо, ищем примеры объявления. Например, в примере грида сразу есть такое: store: Ext.data.StoreManager.lookup('employees1'), Прописываем в грид и тулбар и в итоге наши записи не грузятся в таблицу:blink: То же самое для этого кода: store: Ext.getStore('employees1') Зато если прописать вот так: //грид store: Ext.create('MyApp.store.employees.Employees'), //тулбар store: Ext.getStore('employees1') то все работает, НО.... теперь даже если захожу во view логина, то у меня ИДЕТ GET ЗАПРОС на получение сотрудников из главного view, который еще даже не загружен. Я так понимаю, это связано с requires секцией, но в view логина я не гружу этот store. В общем, это какое-то сильное колдунство...со stores во ViewModel все работает адекватно и грузится именно тогда, когда вызвана вьюшка. |
Кстати, про этот фидл:
https://fiddle.sencha.com/#fiddle/1i3e Такой код: store.totalCount = store.getTotalCount() - 1; pb.onLoad(); Разве учитывает то, что мы удалим не один элемент, а, например, 5... или когда несколько пользователей работают с таблицей и удаляют одновременно разные записи? Похоже, релоад store лучший вариант. |
В общем, посмотрел я вот этот пример:
http://examples.sencha.com/extjs/6.2...k/#paging-grid и увидел, что в `pagingtoolbar` вообще можно store не прописывать и все замечательно работает. Убедился, что это так. Хватает такого кода в гриде: store: { type: 'employees' }, Чудеса) В одном примере Сенча прописывает, в другом нет... |
В документации к 6.2 классик версии
http://docs.sencha.com/extjs/6.2.0/c...html#cfg-store сказано If no store is provided, the store of the owner component (if there is an owner and it has a store) is used. |
Часовой пояс GMT +3, время: 03:27. |