解决jqgrid当rowNum<record时数据不能全显示的问题(jqGrid 源码 非压缩)

针对jqGrid在rowNum设置小于总记录数时无法显示全部数据的问题,本文提供了解决方法。通过分析jQgrid源码,找到并调整'addJSONData'方法,确保所有数据能够正确显示。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

如果不考虑分页问题请参考:

//获取当前表格的所有数据
 function getJQAllData() {
        var o = jQuery("#table_list_1");
        //获取当前显示的数据
        var rows = o.jqGrid('getRowData');
        var rowNum = o.jqGrid('getGridParam', 'rowNum'); //获取显示配置记录数量
        var total = o.jqGrid('getGridParam', 'records'); //获取查询得到的总记录数量
        //设置rowNum为总记录数量并且刷新jqGrid,使所有记录现出来调用getRowData方法才能获取到所有数据
        o.jqGrid('setGridParam', { rowNum: total }).trigger('reloadGrid'); 
        var rows = o.jqGrid('getRowData');  //此时获取表格所有匹配的
        o.jqGrid('setGridParam', { rowNum: rowNum }).trigger('reloadGrid'); //还原原来显示的记录数量
        return rows;
    }
如果考虑分页问题则需要更改源码

打开jQgrid源码搜索addJSONData = function(data,t, rcnt, more, adjust) 方法 找到

var rn = parseInt(ts.p.rowNum,10),br=ts.p.scroll?$.jgrid.randId():1, altr, selected=false, selr;
把p.rowNum 换成p.records 这样每次加载数据时都会根据返回的数据生成表格

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值