Javascript Ext Js Grid,如何获取keyup上的单元格值?
我使用的是Ext Js v6.2网格,在我的应用程序中,我需要在我的代码中获取keyup上的单元格值,我已经尝试过了,但它没有返回值,如果我错了,请更正我的代码,我已经在文档和其他东西中搜索过,但没有帮助。请解决问题。提前谢谢 更新代码Javascript Ext Js Grid,如何获取keyup上的单元格值?,javascript,extjs,extjs-grid,Javascript,Extjs,Extjs Grid,我使用的是Ext Js v6.2网格,在我的应用程序中,我需要在我的代码中获取keyup上的单元格值,我已经尝试过了,但它没有返回值,如果我错了,请更正我的代码,我已经在文档和其他东西中搜索过,但没有帮助。请解决问题。提前谢谢 更新代码 Ext.define('MisCharge', { extend: 'Ext.data.Model', fields: [ {
Ext.define('MisCharge', {
extend: 'Ext.data.Model',
fields: [
{name: 'name', mapping: 'name'},
{name: 'age', mapping: 'age'},
{name: 'marks', mapping: 'marks'}
]
});
}
// Store data
var myData = [
{name: "Container Cost"},
{name: "Packaging Cost "},
{name: "Handling Charges "},
{name: "Service Cost of Buyer "},
{name: "Documentation"},
{name: "Cntry of origin Cert."},
{name: "Royalties"},
{name: "Value of Proceeds"},
{name: "Warranty Services"},
{name: "Seller Obligation"},
{name: "Other Charges"},
];
// Creation of first grid store
var gridStore1 = Ext.create('Ext.data.Store', {
model: 'MisCharge',
data: myData,
});
// Creation of first grid
var gridStore = Ext.create('Ext.grid.Panel', {
cls: 'custom-grid',
id: 'gridId',
store: gridStore1,
stripeRows: true,
width: '100%',
collapsible: false,
enableColumnMove: false,
columnLines: true,
sortableColumns: false,
enableColumnHide: false,
enableColumnResize: false,
enableRowHeightSync: true,
columns:
[{
header: "Charges",
dataIndex: 'name',
id: 'charge',
width: 200,
height: 20,
flex: 1
},
{
editor: {
xtype: 'textfield',
enableKeyEvents: true,
listeners: {
keyup: function (form, e) {
var sel_model = gridStore.getSelectionModel();
var record = sel_model.getSelection()[0];
alert(record);
}
}
},
header: "Rate%",
dataIndex: 'age',
flex: 1,
sortable: true,
height: 20,
hideable: false,
},
{
editor: {
xtype: 'textfield',
// selectOnFocus: true
},
header: "Amount()",
dataIndex: 'marks',
flex: 1,
height: 20,
sortable: true,
}],
selType: 'cellmodel',
plugins: [
Ext.create('Ext.grid.plugin.CellEditing', {
clicksToEdit: 1
})]
});
您需要通过引用
el
元素来添加事件
editor: {
xtype: 'textfield',
enableKeyEvents: true,
listeners: {
keyup: {
element: 'el',
fn: function (a, b) {
var record = gridStore.getSelectionModel().selected.items[0].data
alert(record);
}
}
}
}
您在哪里添加侦听器?这不太清楚。网格不能有
键控
侦听器,除非在编辑器字段中。您的代码显示表单
,但网格没有表单。然而,代码中有一个明显的错误:gridStore
未定义。如果代码位于闭包中,那么编写extjs代码是一种不同寻常的方式。在这种情况下,请显示整个函数及其周围环境。@LorenzMeyer完整代码已更新。谢谢你。将侦听器添加到编辑器字段,显示完整代码。谢谢。我已经尝试过了,但是它只返回[object object],而不是值。所以尝试类似于document.getElementById(b.id).value
,在您使用keyup:function(form,e)
,然后应该保持document.getElementById(e.id).value
好的,记住接受这个解决方案,这样其他经历过这个问题的人也能解决它。如果您喜欢,请标记+1反馈!