我必須讓我的網格列的數據做出一些決定,並填寫了一些數據,一些inputboxes一旦電網完成渲染之後。但我無法取得網格商店。如何從Ext.grid.Panel獲取存儲數據的完成渲染
我知道如何讓存儲數據
var store = Ext.getCmp('USER_GRID').getStore();
但我有點糊塗了,在那裏把這段代碼。
一種方法把這個網格的列的renderer: function(value, rowIndex, colIndex)
。
我也試過
Ext.create('Ext.grid.Panel', {
id:'USER_GRID',
store: myStore,
columns : [{...my columns....}]
listeners: {
render:function(){
var store = Ext.getCmp('USER_GRID').getStore();
}
},
但在這裏也我正在店裏爲空白。
我也試圖把同樣的
tbar: [{
xtype : 'textfield',
id:'TOTAL_USERS',
fieldLabel : 'Total Users',
listeners: {
afterrender: function(field){
var store = Ext.getCmp('USER_GRID').getStore();
});
}
}
},
其空白這裏。
你能幫忙嗎?
編輯: 感謝@Sergey但我不知道爲什麼我沒有在我的afterrender
方法越來越myStore
。但我在你的小提琴例子中也是如此。
我用另一種方式來滿足我的要求。
dockedItems: [
{
xtype: 'toolbar',
dock: 'top',
items: [{
xtype: 'label',
text: 'Live Users:'
},{
xtype: 'displayfield',
id: 'TOTAL_LIVE_USERS',
value: '0'
}
]
}
],
//這是列代碼。每次呈現通話後,我都會將值增加1以進行最終計數。
{text: "Licence Tpye", width: 100, dataIndex: 'licenceType', sortable: true,
renderer: function(value, rowIndex, colIndex){
var val = parseInt(Ext.getCmp("TOTAL_LIVE_USERS").value);
if(value == 'Live'){
Ext.getCmp('TOTAL_LIVE_USERS').setValue(val + 1);
}
return value;
}
}
請建議,如果它的錯誤或正確的方式做同樣的。有什麼危害?
你使用Ext6嗎?如果是,請嘗試'boxready'事件。暴動事件被解僱得太早。您也可以通過指定storeId並使用'Ext.getStore(storeId)' – Alexander
來獲得商店。這是空白的,因爲商店在網格剛完成渲染時尚未加載數據。也許你想附加一個監聽器來存儲加載事件。 – serg