[英]get a row from a grid ExtJs 4
我認為回答這個問題非常簡單:
我的自定義商店有簡單的網格:
//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' }]
這項工作做得很好。
我想從一個函數得到這個網格的行n°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中的完整行? 謝謝!
你可以使用getNode
解決這個ExtJS 4.x: grid.getView().getNode(index)
getNode
可以獲取HTML ID(不是非常有用),索引或商店記錄。
我想你需要這樣的東西:
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/
我已經解決了訪問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和更新與內容update()
COMAND:
Ext.fly(/*DOM object here*/).update(/*raw content here*/)
獲取FireBug插件並在“處理程序”中監視網格。 如果你看到keyId2列中的數據,你也可以看到firebug中的方式。 即網格對象 - >存儲對象 - >數據數組。
您能告訴我們您是如何在網格的keyId2列中添加數據的?
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.