[英]How to refresh / reload Grid
嗨,這是我的代碼,我試圖單擊工具欄上的“刷新”按鈕來刷新網格面板,但是它將無法正常工作,或者什么也不會發生,請您幫助我,正確的語法是什么?
var store = new Ext.data.JsonStore({
url: 'data-cloud.php',
fields: [{
name: 'userid'
}, {
name: 'record_name'
}, {
name: 'search_term',
type: 'string'
}]
});
var grid_array = new Array();
store.load({
params: {
start: 0,
limit: 5
}
});
store.on('load', function(store, records) {
for (var j = 0; j < records.length; j++) {
grid_array[j] = records[j].get('record_name');
}
});
// create the Grid
var datagrid = new Ext.grid.GridPanel({
store: store,
columns: [{
id: 'id',
header: 'Cloud Name',
width: 155,
renderer: record_name,
sortable: true,
dataIndex: 'record_name'
}, {
header: 'Search Term',
width: 150,
sortable: true,
dataIndex: 'search_term'
}],
stripeRows: true,
height: 250,
width: 500,
id: 'cloud_panel',
title: 'DB Grid',
id: 'detailPanel',
tbar: [{
text: 'Refresh',
iconCls: 'new-topic',
handler: function() {
Ext.getCmp('detailPanel').getView().refresh();
}
}
],
bbar: new Ext.PagingToolbar({
pageSize: 5,
store: store,
displayInfo: true,
displayMsg: 'Displaying topics {0} - {1} of {2}',
emptyMsg: "No topics to display"
})
});
var grid = Ext.getCmp('cloud_panel');
...
tbar: [
handler: function() {
grid.load();
}
]
如果刷新網格的視圖,則不會再次加載數據,它只會重新呈現演示文稿。
要刷新實際數據,請使用網格存儲上的重載功能:
Ext.getCmp('detailPanel').getStore().reload();
順便說一句,您在網格的配置中兩次設置了id
屬性“ cloud_panel”和“ detailPanel”,因此您可能要消除其中之一。
嘗試
var grid = Ext.getCmp('cloud_panel');
grid.getStore().load();
你也可以通過參數來存儲
grid.getStore().getProxy().extraParams = {name:'name1', lname: 'lname'}
之后
grid.getStore().load(function(){
alert('store was loaded');
});
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.