Ext实现后台分页的问题,只返回第一页的数据,就没法往后翻页了

Ext实现后台分页的问题,只返回第一页的数据,就没法往后翻页了,第1张

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,一个分页的问题等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/9552101.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-29
下一篇 2023-04-29

发表评论

登录后才能评论

评论列表(0条)

保存