totalProperty:'totalProperty',这个totalProperty可能没正确得到值,每次请求它的值应为11,请用ie7以上版本按f12键点击网络选项卡里面的开始捕获观察返回的值是否为11
jsp 语法 有错误。
for (int i = index; i <100; i++) {
json += "{id:" + i + ",name:'name" + i + "',descn:'descn" + i + "'}";
if (i != 99 {
json += ",";
}
}
少括弧 在i!=99后面
//数据集
Extcreate('ExtdataStore', {
fields: ['字段1','字段2','字段3'],
autoLoad: true,
//每页数据量
pageSize: 25,
proxy:{
type: 'ajax',
url: 'xxx',
//重要,data为读取的json里面的表格数据的键值,count是返回的记录总数
reader: {type: 'json', root: 'data', totalProperty: 'count'},
},
//重要,首次执行时,向后台传递的参数,从第0条记录到第25条,该值在翻页时无需修改,他会自行修改
baseParams: {start: 0, limit: 25}
});
Extcreate('ExtgridPanel',{
store: store,
columns: [{
text: '字段1',
dataIndex: '字段1'
},{
text: '字段2',
dataIndex: '字段2',
},{
text: '字段3',
dataIndex: '字段3',
}],
//分页栏
bbar: Extcreate('ExtPagingToolbar', {
store: store,
displayInfo: true,
displayMsg: '显示 {0} - {1} / 共 {2} 条',
emptyMsg: '没有数据'
}),
});
由于没有看到你的代码,我也不能估计是哪里出了问题,不过根据经验,应该是初始的pagesize没有赋值,你可以比对一下上面的代码,希望帮到你
Extjs treeGrid分页实例,项目中用到,拿出来跟大家分享一下,主要是通过两个store实现。
[javascript] view plaincopy
ProTreeGrid = Extextend(ExttreePanel, {
_baseParam : {
process : '项目立项',
isShow : 'true',
start : 1
},
constructor : function(_config) {
if (_config == null)
_config = {};
Extapply(this, _config);
thisstore1 = Extcreate('ExtdataJsonStore', {
autoLoad : true,
pageSize : basicConstantLIMIT,
proxy : {
type : 'ajax',
url : "xmgl/pro-info-manage!pageaction",
extraParams : this_baseParam,
reader : {
type : 'json',
root : 'rows',
totalProperty : "totalCount"
}
},
model : 'ProInfo'
});
thisstore = Extcreate('ExtdataTreeStore', {
model : 'ProInfo',
proxy : {
type : 'ajax',
url : 'xmgl/pro-info-manageaction'
},
folderSort : true,
listeners : {
'beforeload' : {
fn : function(_s, _op, _e) {
this_baseParamlimit = basicConstantLIMIT;
_sproxyextraParams = this_baseParam;
},
scope : this
}
}
});
this['selModel'] = Extcreate('ExtselectionTreeModel', {
mode : 'SINGLE',
listeners : {
'selectionchange' : {
fn : thisselectionChangeHandler,
scope : this
}
}
});
this['columns'] = [ {
xtype : 'treecolumn',
text : '项目性质',
flex : 1,
sortable : true,
dataIndex : 'proClass'
}, {
text : '项目名称',
flex : 25,
dataIndex : 'proName',
sortable : true
}, {
text : '流程状态',
flex : 75,
dataIndex : 'process',
sortable : true
}, {
text : '项目时间',
xtype : 'datecolumn',
format : 'Y-m-d',
dataIndex : 'crTime',
sortable : true,
flex : 85
}, {
text : '项目编号',
flex : 1,
dataIndex : 'proNo',
sortable : true
}, {
text : '项目单位',
flex : 1,
dataIndex : 'unit',
sortable : true
}, {
text : '优先级',
flex : 6,
dataIndex : 'priority',
sortable : true
}, {
text : '项目类型',
flex : 75,
dataIndex : 'proType',
sortable : true
}, {
text : '项目内容',
flex : 2,
dataIndex : 'proContent',
sortable : true
}, {
text : '附件数',
flex : 6,
dataIndex : 'fileCount',
sortable : true
} ]
ProTreeGridsuperclassconstructorcall(this, {
useArrows : true,
height : this_height,
width : this_width,
autoScroll : true,
rootVisible : false,
dockedItems : [ {
_treeGrid : this,
xtype : 'pagingtoolbar',
id : 'PROTREEGRID_PAGEBAR',
store : thisstore1,
dock : 'bottom',
displayInfo : true,
listeners : {
change : function(obj, pdata, options) {
if(this_treeGrid_baseParamstart==pdatacurrentPage)
return;
this_treeGrid_baseParamstart = pdatafromRecord;
this_treeGrid_baseParamlimit = basicConstantLIMIT;
this_treeGridstoreload( {
params : this_treeGrid_baseParam
});
}
}
} ],
viewConfig : {
stripeRows : true,
enableTextSelection : true,
getRowClass : function(record) {
if (recordget("proClass") == '收入项目') {
return 'srcss';
} else if (recordget("proClass") == '支出项目') {
return 'zccss';
}
}
},
tbar : new ExttoolbarToolbar( {
id : 'TBAR_PROTREEGRID',
items : [ new ProClassQueryCombo( {
width : 140,
labelWidth : 60
}), '-', '项目名称:', {
xtype : 'textfield',
width : 70
}, '无分项总体项目显示:', {
xtype : 'checkbox',
checked : true,
width : 70
}, {
text : "查询",
icon : 'images/icons/searchgif',
handler : thisonSearch,
scope : this
}, {
text : "重置",
icon : 'images/icons/delgif',
handler : thisonReset,
scope : this
}, {
text : "高级查询",
icon : 'images/icons/searchgif',
handler : thisonAdvSearch,
scope : this
} ]
})
});
},
selectionChangeHandler : function() {
},
reLoadData : function() {
thisstoreload( {
params : this_baseParam
});
thisstore1load( {
params : this_baseParam
});
},
onSearch : function() {
var _param = {};
var _tbar = ExtgetCmp('TBAR_PROTREEGRID');
_paramprocess = _tbaritemsitems[0]value;
_paramproClass = _tbaritemsitems[2]value;
_paramproName = _tbaritemsitems[5]value;
_paramisShow = _tbaritemsitems[7]value;
// thisstore1load(1);
this_baseParam = _param
thisreLoadData();
},
onReset : function() {
var _tbar = ExtgetCmp('TBAR_PROTREEGRID');
_tbaritemsitems[0]setValue('项目立项');
_tbaritemsitems[2]setValue('');
_tbaritemsitems[5]setValue('');
this_baseParam = {
process : '项目立项',
isShow : 'false'
};
},
onAdvSearch : function() {
new ProQueryWin( {
_grid : this,
_process : '项目立项'
})show();
}
});
你ajax返回的数据格式可能有问题。举例如下:
{"total":"7","data":[{"id":"12","name":"ewrwfsf","pwd":"htukiki"},{"id":"15","name":"dfd","pwd":"eeeeeee"}]}
ExtonReady(function () {
var itemsPerPage = 2; // set the number of items you want per page
var store = Extcreate('ExtdataStore', {
id : 'simpsonsStore',
autoLoad : false,
fields : ['name', 'email', 'phone'],
pageSize : itemsPerPage, // items per page
proxy : {
type : 'ajax',
url : 'pagingstorejs', // url that will load data with respect to start and limit params
reader : {
type : 'json',
root : 'items',
totalProperty : 'total'
}
}
});
// specify segment of data you want to load using params
storeload({
params : {
start : 0,
limit : itemsPerPage
}
});
Extcreate('ExtgridPanel', {
title : 'Simpsons',
store : store,
columns : [{
header : 'Name',
dataIndex : 'name'
}, {
header : 'Email',
dataIndex : 'email',
flex : 1
}, {
header : 'Phone',
dataIndex : 'phone'
}
],
width : 400,
height : 125,
dockedItems : [{
xtype : 'pagingtoolbar',
store : store, // same store GridPanel is using
dock : 'bottom',
displayInfo : true,
displayMsg : 'Displaying {0} - {1} of {2}', //这里定义显示信息的格式
// private
updateInfo : function () {
var me = this,
displayItem = mechild('#displayItem'),
store = mestore,
pageData = megetPageData(),
count,
msg;
var grid = meup(); //这里可以取到分页工具栏绑定的grid
if (displayItem) {
count = storegetCount();
if (count === 0) {
//msg = meemptyMsg;
msg = "查询出错啦";
} else {
msg = ExtStringformat(
medisplayMsg,
pageDatafromRecord,
pageDatatoRecord,
pageDatatotal);
}
displayItemsetText(msg);
}
}
}
],
renderTo : ExtgetBody()
});
})
是啊,totalcount是你从后台传过来的,你得计算好了,ext再根据你传过来的计算共几页。你想动态添加就得自己计算了,你可以添加几条,让totalcount+几,然后跳转到最后一页
以上就是关于Ext实现后台分页的问题,只返回第一页的数据,就没法往后翻页了全部的内容,包括:Ext实现后台分页的问题,只返回第一页的数据,就没法往后翻页了、ext的分页问题,一直显示不出数据,不知道哪出错了·、Extjs,一个分页的问题等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)