我认为回答这个问题非常简单:
我的自定义商店有简单的网格:
//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
}
我正在使用ExtJs 4,所以我无法使用命令grid.getView().getRow(1);
我无法从商店获取它,因为我想获得没有存储在商店中的id:keyId2列的内容,所以我做不了类似的事情:
grid.getStore().getAt(1);
任何人都知道如何获得ExtJs 4中的完整行? 谢谢!
答案 0 :(得分:3)
您可以使用getNode
:grid.getView().getNode(index)
getNode
可以使用HTML ID(不是很有用),索引或商店记录。
答案 1 :(得分:1)
我认为你需要这样的东西:
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);
});
jsFiddle:http://jsfiddle.net/RftWF/
答案 2 :(得分:0)
我已经解决了访问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()
命令获取单身轻量级元素,并使用update()
命令更新内容:
Ext.fly(/*DOM object here*/).update(/*raw content here*/)
答案 3 :(得分:0)
获取FireBug插件并在“处理程序”中监视网格。如果你看到keyId2列中的数据,你也可以看到firebug中的方式。即网格对象 - &gt;存储对象 - &gt;数据阵列。
您能告诉我们您是如何在网格的keyId2列中添加数据的?