Extjs4 在按钮上单击“获取选定网格行数据”
我有一个关于从所选网格行获取数据的问题 这是存储数据库信息的网格面板:Extjs4 在按钮上单击“获取选定网格行数据”,extjs4,Extjs4,我有一个关于从所选网格行获取数据的问题 这是存储数据库信息的网格面板: gridHoldingPanel = _ui.createGrid({ extClass: 'Ext.grid.Panel', width: windowSettings.gridPanel.width, height: windowSettings.gridPanel.height, id: _i
gridHoldingPanel = _ui.createGrid({
extClass: 'Ext.grid.Panel',
width: windowSettings.gridPanel.width,
height: windowSettings.gridPanel.height,
id: _id.archiveHistoryGrid,
title: null,
selModel: 'rowmodel',
store: ds,
columns: [{
header: 'Archived at',
dataIndex: 'archived_at',
width: 120
}, {
header: 'Calls Starting',
dataIndex: 'date_from',
width: 120
}, {
header: 'Calls Ending',
dataIndex: 'date_to',
width: 120
}, {
header: 'Calls Archived',
dataIndex: 'total_calls',
width: 90
}, {
header: 'Database',
dataIndex: 'db_archived',
width: 70
}, {
header: 'Archive Path',
dataIndex: 'path',
width: 200
}],
stripeRows: true,
listeners : {
itemdblclick: function(dv, record, item, index, e) {
var win = _restoreCallsWindow(), field= win.down('textfield');
field.setValue(record.get('path'));
win.show();
}
}
})
这是带有按钮的面板,与网格位于同一窗口中:
buttonsPanel = _ui.createPanel({
border: false,
width: windowSettings.buttonsPanel.width,
height: windowSettings.buttonsPanel.height,
id: _id.archiveHistoryButtons,
items: [{
layout: 'hbox',
border: false,
margin: '5px 5px 5px 5px',
items: [
//Refresh button
_ui.createButton({
text: 'text_auto_refresh',
cls: 'sense-archive-button-buttons',
id: _id.arHistoryRefresh,
handler: function() {
ds.load();
}
}),
//Restore button
_ui.createButton({
text: 'text_restore',
margin: '0px 0px 0px 5px',
cls: 'sense-archive-button-buttons',
id: _id.arHistoryRestore,
handler: function(grid, rowIndex, colIndex) {
var row = gridHoldingPanel.getSelectionModel().getSelection();
console.log(row);
}
}),
//Close window button
_ui.createButton({
text: 'text_close',
margin: '0px 0px 0px 5px',
cls: 'sense-archive-button-buttons',
id: _id.arHistoryClose,
handler: function ( ) {
_historyWindow().close();
}
})]
}]
})
我试图做的是,当单击“还原”按钮时,它会打开另一个包含文本输入字段的窗口,打开时,我希望显示数据网格中选定行的路径值
正如您所看到的,当我尝试从对象记录中获取数据时,还原按钮中的代码将行值作为整个对象返回给我。data
返回我未定义的
有人能帮我吗?问题是您将按钮处理程序参数与项目单击事件函数混淆了。因此,对于处理程序,只有按钮作为参数。getSelection函数返回一个选择数组,因此,如果您有单选择,则该行实际上将是第一个元素。简单的解决方案是:
handler: function(btn) {
var records = gridHoldingPanel.getSelectionModel().getSelection();
console.log('the selected record path' +records[0].data.path);
}
我想是的,我是ExtJs新手。非常感谢您的解决方案有效。