Javascript 从网格extjs4获取一行
我认为回答这个问题很简单: 我的自定义商店有简单的网格:Javascript 从网格extjs4获取一行,javascript,extjs,datagrid,extjs4,Javascript,Extjs,Datagrid,Extjs4,我认为回答这个问题很简单: 我的自定义商店有简单的网格: //other code { xtype: 'grid', store: 'SecondStore', itemId: 'mainTabPanel2', columns: [ //this is not from the store { header: 'Not Form Store', id: 'keyId2',
//other code
{
xtype: 'grid',
store: 'SecondStore',
itemId: 'mainTabPanel2',
columns: [
//this is not from the store
{
header: 'Not Form Store',
id: 'keyId2',
},
//from the store
{
header: 'From Store',
dataIndex: 'label',
id: 'keyId',
}
]
}
存储区仅使用id:keyId填充第二列。事实上:
fields: [{ name: 'label' }]
这很有效
我想从一个函数中得到这个网格的第1行
handler: function() {
var grid = Ext.ComponentQuery.query('grid[itemId="mainTabPanel2"]')[0];
//var row= get row(1) <- i don't know how to get the complete row
}
有人知道如何在ExtJS4中获得完整的行吗?
谢谢大家! 我想你需要这样的东西:
Ext.onReady(function () {
var store = 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'
}
}
});
var grid = 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,
renderTo: Ext.getBody()
});
alert(grid.getStore().getAt(1).data.name);
});
jsIDLE:我已经解决了访问DOM的问题:
/* Get Dom of the first grid */
var DOMgrid = Ext.select('#'+gridview.getId());
var gridChild = DOMgrid.elements[0].children[1].children[0].children;
然后,只需遵循DOM结构就可以得到感兴趣的“子对象”
您还可以通过应用Ext.fly()
comand()获取singleton flyweight元素,并使用update()
comand()更新内容:
Ext.fly(/*DOM object here*/).update(/*raw content here*/)
获取FireBug插件并在“handler”处监视网格。如果您看到列keyId2中的数据,那么您也可以看到firebug中的方式。i、 e网格对象->存储对象->数据数组
您能告诉我们如何在网格的keyId2列中添加数据吗?您可以使用
getNode
:grid.getView().getNode(index)
可以获取HTML ID(不是很有用)、索引或存储记录。我的存储中没有“keyId2”(示例中的“name”字段),我无法将其添加到存储中。所以我不做grid.getStore().getAt(1.data.name),因为我没有任何“data.name”定义。你找到解决方案了吗?Marco?是的,检查我自己的答案
Ext.fly(/*DOM object here*/).update(/*raw content here*/)