关于jqgrid搜索后数据获取的问题 请教: 在jqgrid中,使用本地数据,搜索后如何获取搜索的数据项? 或者如何判断griddata中哪些数据是搜索命中的数据?jqgrid搜索数据 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 在jqgrid中,使用本地数据,搜索后如何获取搜索的数据项?--$('#jqGridId').jqGrid('getRowData')得到的就是jqgrid中当前显示的数据你要的不就是搜索后的数据?还是要提取所有数据,包括没显示的?需要重新reset下查询结果在调用getRowData 匹配的数据全部返回了吗?而不是只返回了jqgrid配置的rowNum数据量。这样获取不到所有数据的,jqgrid只保存返回的数据,分页的数据没保存如果是返回了所有匹配的数据,只是rowNum配置小于返回的数据量导致没有显示其他的记录,可以这样获取,添加loadComplete事件,参数为jqgrid包装过的json对象,其中list属性为所有的记录集合 loadComplete: function (data) { console.log(data.list) } 额,版主还是没看清楚我说的,是本地数据,搜索也是本地的,与服务器不交互,所有数据都在griddata里面我现在需要的是在搜索后,获取所有搜索命中的数据,不是全部数据,不是页面显示数据 你不是用的jqgrid自带的查询?jqgrid自带的查询查询后jqgrid显示的就是命中的数据,$('#jqGridId').jqGrid('getRowData') 得到就是显示的数据(命中数据)不太明白楼主的思路。。发个代码看看喽~ 是自带查询,命中的数据分页后,$('#jqGridId').jqGrid('getRowData') 就不是全部命中数据了,只是本页的数据,我想要的事全部命中数据,比如查询后有20条数据,分页显示10条,第二页的数据就无法得到 可以设置rowNum为所有records,然后在调用getRowData,再还原rowNum为原来的就行 function getResult() {//获取结果结合的函数,可以通过此函数获取查询后匹配的所有数据行。 var o = jQuery("#jqgrid"); var rows = o.jqGrid('getRowData'); //获取所有记录 console.log(rows) alert(rows.length); //输出原始rowNum的数据量 var rowNum = o.jqGrid('getGridParam', 'rowNum'); //获取显示的记录数量 var total = o.jqGrid('getGridParam', 'records'); //获取查询得到的总记录数量 o.jqGrid('setGridParam', { rowNum: total }).trigger('reloadGrid'); //设置rowNum为总记录数量并且刷新jqGrid,使所有记录现出来调用getRowData方法才能获取到所有数据 var rows = o.jqGrid('getRowData'); //输出所有匹配的 o.jqGrid('setGridParam', { rowNum: rowNum }).trigger('reloadGrid'); //还原原来显示的记录数量 return rows; } 那浏览器不是要重建两次Table内容,如果数据量比较大,会很慢的 那你就的自己存储下原始数据,通过获取查询表单的条件自己过滤出自己需要的数据,不操作jqGrid。jqGrid的过滤结果是内部变量,没有对外提供,所以你没办法获取,除非你自己修改jqGrid提供查询结果的功能,具体代码在下面类似的代码中var queryResults = query.select(),//此时获取到的就是所有记录 recordsperpage = parseInt(ts.p.rowNum,10), total = queryResults.length, page = parseInt(ts.p.page,10), totalpages = Math.ceil(total / recordsperpage), retresult = {}; queryResults = queryResults.slice( (page-1)*recordsperpage , page*recordsperpage );//这里对记录进行了裁剪,获取当前页数据 改jqgrid代码搞定,谢谢版主了 clintonfx可不可以告诉我你是怎么实现的,最好有代码? 版主在上面已经写了,你找到queryResults这一段分页代码,然后将筛选的数据弄出来就行了 层拖拽,事件冒泡 请教高手,关于一个页面两个iframe数据交互的问题?? 在线等,JS求助。 jqgrid 里面的添加方法问题 请问node的问题 【ExtJS 4.1】Element.load()加载不成功 究竟是什么原因?大家指点。 关于Frame中的Word文档的处理问题 用javascript的window.print()可以调用window内置的打印。ie有个打印预览功能,可否用javascript语句实现? ----------------dataTable-------分页的问题--------------------- 基础真的很重要、、、 js 问题求高手指教
--
$('#jqGridId').jqGrid('getRowData')得到的就是jqgrid中当前显示的数据
你要的不就是搜索后的数据?还是要提取所有数据,包括没显示的?需要重新reset下查询结果在调用getRowData
匹配的数据全部返回了吗?而不是只返回了jqgrid配置的rowNum数据量。这样获取不到所有数据的,jqgrid只保存返回的数据,分页的数据没保存如果是返回了所有匹配的数据,只是rowNum配置小于返回的数据量导致没有显示其他的记录,可以这样获取,添加loadComplete事件,参数为jqgrid包装过的json对象,其中list属性为所有的记录集合 loadComplete: function (data) {
console.log(data.list)
}
var o = jQuery("#jqgrid");
var rows = o.jqGrid('getRowData'); //获取所有记录
console.log(rows)
alert(rows.length); //输出原始rowNum的数据量 var rowNum = o.jqGrid('getGridParam', 'rowNum'); //获取显示的记录数量
var total = o.jqGrid('getGridParam', 'records'); //获取查询得到的总记录数量
o.jqGrid('setGridParam', { rowNum: total }).trigger('reloadGrid'); //设置rowNum为总记录数量并且刷新jqGrid,使所有记录现出来调用getRowData方法才能获取到所有数据
var rows = o.jqGrid('getRowData'); //输出所有匹配的 o.jqGrid('setGridParam', { rowNum: rowNum }).trigger('reloadGrid'); //还原原来显示的记录数量
return rows;
}
那你就的自己存储下原始数据,通过获取查询表单的条件自己过滤出自己需要的数据,不操作jqGrid。jqGrid的过滤结果是内部变量,没有对外提供,所以你没办法获取,除非你自己修改jqGrid提供查询结果的功能,具体代码在下面类似的代码中var queryResults = query.select(),//此时获取到的就是所有记录
recordsperpage = parseInt(ts.p.rowNum,10),
total = queryResults.length,
page = parseInt(ts.p.page,10),
totalpages = Math.ceil(total / recordsperpage),
retresult = {};
queryResults = queryResults.slice( (page-1)*recordsperpage , page*recordsperpage );//这里对记录进行了裁剪,获取当前页数据
版主在上面已经写了,你找到queryResults这一段分页代码,然后将筛选的数据弄出来就行了