如何将数据传递给Popup以及如何在Popup中读取它

时间:2016-05-03 19:33:43

标签: javascript extjs extjs5

我在动作栏上调用弹出窗口点击

 handler: function (view, rowIndex, colIndex, item, e, record, row) {                            
                        Ext.widget('Info').show();
                    } 

如果我想传递record.get('firstname'),那该怎么做?

同时如何读取afterrender中发送的数据

var infoForm = Ext.define('App.view.Report.Info', {
extend: 'Ext.window.Window',
listeners: {
    afterrender: function () {                  
    }
}

3 个答案:

答案 0 :(得分:0)

你可以按照这个 -

handler: function (view, rowIndex, colIndex, item, e, record, row) {
    var infoWin=Ext.widget('Info');
    infoWin.firstName=record.get('firstname');
    infoWin.show();
}


var infoForm = Ext.define('App.view.Report.Info', {
extend: 'Ext.window.Window',
listeners: {
    afterrender: function (winObj) { 
        var firstName=winObj.firstName;
    }
}

因为在创建Info实例之后,它只是一个Object而你可以添加新的属性运行时。

答案 1 :(得分:0)

您可以在窗口小部件中使用formpanel,并使用handler: function(grid, rowIndex, colIndex) { var record = grid.getStore().getAt(rowIndex); Ext.create('App.view.Report.Info', { record: record }).show(); } 在formelements中轻松加载数据。这是一个例子:

https://fiddle.sencha.com/#fiddle/19oe

替代:

Ext.define('App.view.Report.Info', {
    extend: 'Ext.window.Window',
    listeners: {
    afterrender: function () {
        if (this.record) {
            console.log(this.record);
        }                
    }
}

渲染小部件后:

ImageView

答案 2 :(得分:-1)

使用以下代码将任何键值传递给小部件

Ext.widget('Info',{
    'firstname' : record.get('firstname') 
}).show();

稍后,您可以在Afterrender函数中使用它," this.firstname"