在ExtJS中的视图之间传递数据

时间:2015-05-12 09:31:24

标签: extjs extjs4.2 sencha-cmd

我正在从商店读取数据并填充主要的girdView。单击任何行时,会出现一个窗口,我想在该窗口中填充具有相同记录的字段集。 谁能告诉我怎么做?

我的弹出窗口如下:

{
    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,

        }

我想在kopfdatenView中填充fieldset。请帮助

2 个答案:

答案 0 :(得分:2)

您可以这样做:

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

然后,在您的PopUpWindowController中,您可以检索' params'在渲染事件中(例如)。

答案 1 :(得分:2)

您在创作时直接将记录传递到窗口:

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

然后在窗口的initComponent函数内(callParent之前):

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