700字范文,内容丰富有趣,生活中的好帮手!
700字范文 > EasyUI分页加载datagrid时候报错Uncaught TypeError: Cannot read property 'length' of undefined...

EasyUI分页加载datagrid时候报错Uncaught TypeError: Cannot read property 'length' of undefined...

时间:2022-03-12 08:42:28

相关推荐

EasyUI分页加载datagrid时候报错Uncaught TypeError: Cannot read property 'length' of undefined...

最近新做了一个模块,还是用的easyui,但是出现了一个问题,研究了好久都没有找到解决问题的方法:

情况如下:

我在加载datagrid的时候,数据报错“Uncaught TypeError: Cannot read property 'length' of undefined”,最后知道了原因是data数据的问题,

我的data数据是{"Total":1,"Rows":[{}] }这种格式,

这时候只需要在分页的代码里加入var data = data.Rows;即可解决问题,这个只针对上面数据格式的情况解决,具体代码如下:

function pagerFilter(data){

var data = data.Rows;//新加的代码

if (typeof data.length == 'number' && typeof data.splice == 'function'){ // 判断数据是否是数组

data = {

total: data.length,

rows: data

};

};

var dg = $(this);

var opts = dg.datagrid('options');

var pager = dg.datagrid('getPager');

pager.pagination({

onSelectPage:function(pageNum, pageSize){

opts.pageNumber = pageNum;

opts.pageSize = pageSize;

pager.pagination('refresh',{

pageNumber:pageNum,

pageSize:pageSize

});

dg.datagrid('loadData',data);

}

});

if (!data.originalRows){

data.originalRows = (data.rows);

}

var start = (opts.pageNumber-1)*parseInt(opts.pageSize);

var end = start + parseInt(opts.pageSize);

data.rows = (data.originalRows.slice(start, end));

return data;

};

$('#tt').datagrid({loadFilter:pagerFilter});

【声明:本文为作者原创,未经允许不可转载!谢谢!】

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。