各位老大,我在做gridPanel分頁時用到了PagingToolbar,但基本上所有的資料都只說了用 ds.load({params:{start:0,limit:10}}); 建立一個HTTP 參數(shù)到遠程數(shù)據(jù)源. 感覺這樣使用數(shù)據(jù)頁面(頁面提供數(shù)據(jù))的方法很原始,我必須在store中 使用 Ext.data.HttpProxy({url:'datapage.aspx'}), 這種方式。
但我目前后臺AJAX類全寫好的,我用方法var data=getdata(20,25);就可得到服務器從第20條記錄開始的25條數(shù)據(jù)。所以我把store使用內(nèi)存模式Ext.data.MemoryProxy(data),就行了。所有測試都OK,但PagingToolbar似乎不支持事件和方法的邦定,幫忙看下面問題DEMO
=============================================================================================
Ext.onReady(function(){
//alert(TMKSOFT.getData(20,20).value); //成功調(diào)試Json數(shù)據(jù)源,服務器Ajax方法,從服務器獲取JSON數(shù)據(jù) 數(shù)據(jù)源絕對沒問題
function getdata(st,pg)
{
data=eval('('+TMKSOFT.getData(st,pg).value+')');
return data;
}
var data=getdata(20,20); //初始化調(diào)試了下,能成功顯示數(shù)據(jù)
var store = new Ext.data.Store({
proxy: new Ext.data.MemoryProxy(data),
reader: new Ext.data.JsonReader({
totalProperty: 'results',
root: 'rows'
}, [
{name: 'id', mapping: 'id'},
{name: 'name', mapping: 'name'},
{name: 'organization',mapping: 'organization'},
{name: 'homepage',mapping: 'homepage'},
])
});
//store.addListener('load',getdata); 想用Load偵聽,但也失敗
var colM=new Ext.grid.ColumnModel([{header:'項目編號',dataIndex:'id',sortable:true},
{header:'項目名稱',dataIndex:'name',sortable:true},
{header:'開發(fā)團隊',dataIndex:'organization',sortable:true},
{header:'網(wǎng)站地址',dataIndex:'homepage',renderer:showUrl}]);
var grid = new Ext.grid.GridPanel({
renderTo:'hello',
title:"中國Java開源產(chǎn)品及團隊",
bodyStyle:'width:100%',
autoWidth:true,
height:500,
//width:'100%',
cm:colM,
store:store,
autoExpandColumn:2,
bbar: new Ext.PagingToolbar({
id:'pagingtoolbar',
pageSize: 20,
store: store,
displayInfo: true,
displayMsg: '顯示第 {0} 條到 {1} 條記錄,一共 {2} 條',
emptyMsg: "沒有記錄"
})
});
//var p1=document.getElementById("ext-gen30").value; //這樣可得到需要從第幾條記錄開始
//var p2=Ext.getCmp('pagingtoolbar').pageSize; //這樣可得到多少條紀錄
alert(p1+" + "+p2)
store.load({callback:getdata}); //每點一下PagingToolbar觸發(fā)什么事件,重調(diào)我getdata方法獲取新數(shù)據(jù),我該怎么寫?
});
回復 更多評論