我需要从extjs网格中获取选定的记录,但
Uncaught TypeError: grid.getSelectionModel is not a function
我看到了这个景色
Ext.define( 'App.view.Measuries', {
extend: 'Ext.window.Window',
alias : 'widget.measuries',
title: 'Мероприятия',
autoShow: false,
modal: true,
resizable: true,
initComponent: function()
{
this.items = [
{
xtype: 'grid',
alias: 'measuries_grid',
bodyPadding: 8,
defaults: { width: 1000, labelAlign: 'top' },
columns:[
{ header: 'п/п', width: 60, dataIndex: 'm_number', menuDisabled: true, sortable: false},
{ header: 'Мероприятие', width: 340, dataIndex: 'm_text', menuDisabled: true, sortable: false},
{ header: 'Плановая дата выполнения', width: 146, dataIndex: 'date_plan', menuDisabled: true, sortable: false, xtype: 'datecolumn', format:'d.m.Y', align: 'center'},
{ header: 'Фактическая дата выполнения', width: 146, dataIndex: 'date_done', menuDisabled: true, sortable: false, xtype: 'datecolumn', format:'d.m.Y', align: 'center'},
{ header: 'Выполнено', width: 95, dataIndex: 'isdone', menuDisabled: true, sortable: false, align: 'center',
renderer: function ( v )
{
return '<img src="img/' + v.toString().toLowerCase() + '.png">';
}},
{ header: 'Отказ', width: 95, dataIndex: 'faultid', menuDisabled: true, sortable: false},
],
store : 'Measuries'
}
];
而这个控制器(也是它的一部分)
editMeasuries: function()
{
var grid = this.getMeasuries();
console.log(grid);
var rec = grid.getSelectionModel().getLastSelected();
/*var sel = grid.getSelectionModel();
var rec = sel.getLastSelected();*/
if ( rec )
{
var view = Ext.widget( 'measuries-edit' );
view.down( 'form' ).loadRecord( rec );
}
},
“this.getMeasuries()”部分似乎有问题。我的“别名:“widget.measuries'" "转到”Ext.window.Window“,getSelecionModel()需要一个网格。我试图在”Ext.window.Window“中设置网格项的别名,但也出现了错误。我如何才能更改我的控制器部分以使事情正确?对可能的错误感到抱歉,我的英语很弱,所以作为extjs。
2条答案
按热度按时间ttygqcqt1#
为网格设置一个
itemId
,并在窗口上使用getComponent
来获取网格:然后在你的'editMeasures'函数中这样做:
vuv7lop32#
您可能不想使用
itemId
,而想使用references
,这是在viewController中处理项目的更快方法。(我从@Peter Koltai处获取代码)
然后在你的'editMeasures'函数中这样做(你不需要myWindow,它只是在那里演示一种不同的方法):