各位老大,我在做gridPanel分页时用到了PagingToolbar,但基本上所有的资料都只说了用 ds.load({params:{start:0,limit:10}}); 建立一个HTTP 参数到远程数据源. 感觉这样使用数据页面(页面提供数据)的方法很原始,我必须在store中 使用 Ext.data.HttpProxy({url:'datapage.aspx'}), 这种方式。
但我目前后台AJAX类全写好的,我用方法var data=getdata(20,25);就可得到服务器从第20条记录开始的25条数据。所以我把store使用内存模式Ext.data.MemoryProxy(data),就行了。所有测试都OK,但PagingToolbar似乎不支持事件和方法的邦定,帮忙看下面问题DEMO
=============================================================================================
Ext.onReady(function(){
//alert(TMKSOFT.getData(20,20).value); //成功调试Json数据源,服务器Ajax方法,从服务器获取JSON数据 数据源绝对没问题
function getdata(st,pg)
{
data=eval('('+TMKSOFT.getData(st,pg).value+')');
return data;
}
var data=getdata(20,20); //初始化调试了下,能成功显示数据
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:'开发团队',dataIndex:'organization',sortable:true},
{header:'网站地址',dataIndex:'homepage',renderer:showUrl}]);
var grid = new Ext.grid.GridPanel({
renderTo:'hello',
title:"中国Java开源产品及团队",
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触发什么事件,重调我getdata方法获取新数据,我该怎么写?
});
回复 更多评论