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

How to pass data to Popup and how to read it in Popup

我在单击操作栏时调用弹出窗口

 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 () {                  
    }
}

你可以关注这个-

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 实例之后,它只是一个对象,您可以添加新的属性运行时。

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

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

稍后,您可以通过 "this.firstname"

在 afterrender 函数中使用它

您可以在小部件中使用表单面板,并使用 form.loadRecord(record) 在表单元素中轻松加载数据。这是一个例子:

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

选择:

handler: function(grid, rowIndex, colIndex) {
    var record = grid.getStore().getAt(rowIndex);
    Ext.create('App.view.Report.Info', {
        record: record
    }).show();
}

小部件渲染后:

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