Javascript-форум (https://javascript.ru/forum/)
-   ExtJS (https://javascript.ru/forum/extjs/)
-   -   Как отключить Ext.data.ChainedStore в видах, если само хранилище в контроллере? (https://javascript.ru/forum/extjs/56267-kak-otklyuchit-ext-data-chainedstore-v-vidakh-esli-samo-khranilishhe-v-kontrollere.html)

nohuhu 16.06.2015 02:51

Я всё же не могу понять, зачем вы пытаетесь использовать глобальное хранилище с pagingtoolbar. Глубоко смотреть в код сейчас возможности нет, но я сильно подозреваю, что ChainedStore было привинчено в этом случае как раз для избежания подобных ситуаций. То, что не все методы доступны, это баг конечно.

Можете подробнее объяснить, зачем вам такая конструкция?

khusamov 17.06.2015 01:08

Как зачем? Я хочу чтобы можно было грид листать при помощи pagingtoolbar... вопрос не очень понял.

А он не листается. Ибо ошибку выдает: Uncaught TypeError: store.getTotalCount is not a function

nohuhu 17.06.2015 03:51

Я понимаю, что вам хочется листать таблицу при помощи pagingtoolbar. Вопрос в другом: зачем вам нужно листать глобальный экземпляр хранилища через эту таблицу?

Grid ведь не stateless, он состояние хранит в Store. А если один и тот же экземпляр Store используется в двух и более таблицах, то они будут наступать друг другу на виртуальные ноги. Именно поэтому я рекомендовал использовать alias и тем самым создавать отдельный экземпляр Store для каждой таблицы.

Вам это почему-то не подходит, но я пока не могу понять, почему. Уточните задачу, пожалуйста.

khusamov 17.06.2015 12:35

Я хотел использовать для создания своего field для выбора внешнего ключа. Аналогичного комбобоксу, только вместо списка - таблица.

Таких комбобоксов будет масса (например выбор контрагента будет производится во многих таблицах), ну и хотел чтобы они питались из одного хранилища.

nohuhu 18.06.2015 01:35

Судя по описанию задачи, именно для таких случаев ChainedStore и придумывалось: когда есть некое общее хранилище, по которому нужно иметь отдельные "срезы" со своим состоянием.

А вот с кодом что-то не то. Я попробовал воспроизвести проблему и навскидку всё работает, никаких ошибок. Давайте fiddle.

khusamov 18.06.2015 12:47

Ах вон в чем дело... ладно, постараюсь разобраться. Если не выйдет - сделаю код в песочницу. Спасибо!


Часовой пояс GMT +3, время: 19:09.