2016-05-03 1 views
0

Я зову всплывающее окно на actioncolumn нажмитеКак передать данные в всплывающее окно и как читать его в Popup

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

Если я хочу передать record.get («ПгвЬЫате»), то, как сделать это?

в то же время, как читать отправленные данные в afterrender

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

ответ

-1

Использование ниже кода любой ключ-значение виджета

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

Позже, вы можете использовать его в afterrender функции от «this.firstname»

+0

Спасибо большое – user1893874

0

Вы можете следить за this-

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, его ничего, кроме Объекта и вы можете добавить новые среды выполнения. пройти

0

Вы можете использовать FormPanel в виджете и используйте 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); 
     }     
    } 
} 
Смежные вопросы