我有一个带有dblclick监听器的Ext.grid.Panel。它看起来像这样:
listeners: {
dblclick: {
fn : function() {
console.log("double click event processed");
},
element: 'el'
}
}
当双击一行时,我想在新页面中打开一个URL。为了确定URL,我需要访问行数据 - 或者访问我的JSON中用作Panel商店的“行”。我该如何访问这些数据?
答案 0 :(得分:1)
好吧,事件是itemdblclick(没有dblclick)。并且该行作为参数传递给处理程序。
例如,在以下示例中,当您双击某一行时,您可以看到一个警告弹出窗口,其中显示所选的Simpson名称:
Ext.create('Ext.data.Store', {
storeId:'simpsonsStore',
fields:['name', 'email', 'phone'],
data:{'items':[
{ 'name': 'Lisa', "email":"lisa@simpsons.com", "phone":"555-111-1224" },
{ 'name': 'Bart', "email":"bart@simpsons.com", "phone":"555-222-1234" },
{ 'name': 'Homer', "email":"home@simpsons.com", "phone":"555-222-1244" },
{ 'name': 'Marge', "email":"marge@simpsons.com", "phone":"555-222-1254" }
]},
proxy: {
type: 'memory',
reader: {
type: 'json',
root: 'items'
}
}
});
Ext.create('Ext.grid.Panel', {
title: 'Simpsons',
store: Ext.data.StoreManager.lookup('simpsonsStore'),
columns: [
{ text: 'Name', dataIndex: 'name' },
{ text: 'Email', dataIndex: 'email', flex: 1 },
{ text: 'Phone', dataIndex: 'phone' }
],
height: 200,
width: 400,
listeners: {
itemdblclick: {
fn : function(grid, record) {
alert(record.get('name'));
}
}
},
renderTo: Ext.getBody()
});
你也可以在这里看到它:http://jsfiddle.net/lontivero/utjyd/1/
祝你好运!