2016-03-21 6 views
0

Я новичок в ExtJS и пытаюсь найти свой путь. Я в настоящее время делаю POC и застрял в одном месте.ExtJS: сетки Master Detail, используя тот же магазин

Я пытаюсь создать страницу основных деталей с сеткой в ​​главном и несколькими вкладками в деталях каждый с формой или сеткой. После выбора записи из главной сетки сверху необходимо заполнить подробную сетку. Уловка, я хочу использовать тот же магазин для обеих сеток (мастер &), потому что я хочу иметь возможность вносить изменения (добавлять строки mater, добавлять строки строк, удалять строки и т. Д.), А затем сохранять эти изменения в виде пакета , Возможно ли это? если да, то как мне его достичь? Должен ли я использовать один и тот же магазин, или я могу выполнить пакетное редактирование каким-либо другим способом?

До сих пор я пытался связать выбранную строку в ViewModel (в соответствии с этим question) и попытался следующие привязки данных к подробной сетке

   bind: { 
        data: { 
         bindTo: '{selection.Details}', 
         deep: true 
        } 
       } 

Любая помощь?

Обновление 1:

В моем магазине, мои данные в следующем формате (отсюда тот же магазин для мастер-деталь)

items: 
     [ 
      { 
       Name: "ABC", 
       Details:[ 
         { 
          detail1: 'asdf', 
          detail2:'qwerty' 
         } 
         ] 
      } 
     ] 

Update 2:

См. Следующее изображение. What I want to achieve using extjs

Это то, чего я пытаюсь достичь. Я хочу использовать хранилище для данных Master-Detail. Является ли это возможным? если да, то как?

Update 3

Я создал fiddle для дальнейшего уточнения, что я прошу

+0

Здесь есть пример: http://examples.sencha.com/extjs/6.0.1/examples/kitchensink/#binding-child-session, но я не знаю, что вы подразумеваете под «Я хочу использовать тот же магазин ». Если это тот же магазин, как это выглядит подробно? –

+0

@EvanTrimboli. Я обновил свой вопрос. –

+0

вы можете передать хранилище между представлениями внутри главного представления или получить его из StoreManager. так как вы дали только кусок кода, я не могу рекомендовать по правильному пути – aviram83

ответ

2

По вашей скрипке я добавил решение here

Если посмотреть на сенче docs вы можно увидеть:

Начальный набор данных для применения к t pl для обновления области содержимого компонента.

так что привязка к данным динамическое значение не будет работать.

+0

Спасибо.Это помогает –

+0

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

+0

, так как вы работаете в разных магазинах, они не синхронизированы, что вы можете попробовать сделать, когда вы добавляете запись (catch add/удалить событие) перейдите в главное хранилище и добавьте запись в выбранную. – aviram83