2015-05-12 2 views
1

Я читаю данные из магазина и заполняя главный girdView. Когда нажимается какая-либо из строк, появляются окна, и я хочу заполнить набор полей в этом окне той же самой записью, которая нажата. Может ли кто-нибудь сказать мне, как это сделать?Передача данных между представлениями в ExtJS

Мое всплывающее окно, как:

{ 
    extend: 'Ext.window.Window', 

    height: 500, 
    width: 1500, 
    minWidth :1500, 
    maxWidth :1500, 
    layout: 'fit', 
    controller: 'PopUpWindowController', 

    initComponent: function() { 

     var me = this; 


     //console.log(me.myExtraParams); 
     var Store = Ext.getStore('mainStore'); 

     Ext.applyIf(me, { 
     /* items: [{ 
       xtype: 'form', 
       bodyPadding: 10, 
       region: 'center' 
      }]*/ 

     });  
     me.callParent(arguments); 
    },  
     items: [ 
    {  
     xtype: 'panel', 
     title : 'Projektierung', 
     bodyStyle : 'padding:5px', 
     width : 1880, 
     autoHeight : true, 
     items: 
     [ 
      { 
       xtype : 'kopfdatenView', // Have to populate this view 
      } 
     ] 
}]} 

и в главном зрения я называю это так:

{ область: 'центр', xtype: 'GridPanel',

  listeners : { 
       itemdblclick: function(dv, record, item, index, e) { 

        var extra = record.data; 
        win = Ext.create('App.view.PopUpWindow'); 

        console.log(win.myExtraParams); 

        win.on('show', function(win) { 

        win.setTitle(record.get('ID')); 
        }); 

        win.show(); 
       } 
      }, 

      columns: [ 
         **** 
        ], 
      store: 'mainStore', 
      height: 100, 
      width: 400, 

     } 

Я хочу, чтобы заполнить fieldset в kopfdatenView. Пожалуйста, помогите

+0

@xaume первую очередь, вы должны написать такие вещи в комментариях. Также я добавил код в свой вопрос –

ответ

2

Вы непосредственно передать вашу запись в окно на создание:

win = Ext.create('App.view.PopUpWindow', { 
    myRecord: record 
}); 

А потом внутри initComponent функции окна (до callParent):

this.title = this.myRecord.get('ID'); 
+0

Спасибо, Он работает, хотя функции не было, поэтому мне пришлось принимать данные как this.myRecord.ID. Но это очень помогло мне. благодаря –

2

Вы можете сделать что-то вроде этого:

win = Ext.create('App.view.PopUpWindow', { 
      params: record 
     }); 

Тогда в вашем PopUpWindowController вы можете получить «Params» в визуализации события (к примеру).

+0

прежде всего, вы должны написать такие вещи в комментариях. Также я добавил код в свой вопрос –

+0

Я отмечаю ваш ответ как полезную причину, по которой вы дали мне правильный ответ, но вы не сказали мне, как получить доступ к нему в другом представлении (что ответ @ 3rgo говорит, и именно поэтому Я принимаю это как «принятый ответ»). Большое спасибо. –

 Смежные вопросы

  • Нет связанных вопросов^_^