关于jqgrid搜索后数据获取的问题

clintonfx 2013-09-03 11:05:01
请教:

在jqgrid中,使用本地数据,搜索后如何获取搜索的数据项?

或者如何判断griddata中哪些数据是搜索命中的数据?
...全文
428 17 打赏 收藏 转发到动态 举报
写回复
用AI写文章
17 条回复
切换为时间正序
请发表友善的回复…
发表回复
阿杰_114 2015-11-13
  • 打赏
  • 举报
回复
[u][i][i][i][i][i][i][i][i][i][i][/i][/i][/i][/i][/i][/i][/i][/i][/i][/i][/u]
clintonfx 2013-10-04
  • 打赏
  • 举报
回复
引用 15 楼 xiaoyaoyoufang 的回复:
clintonfx可不可以告诉我你是怎么实现的,最好有代码?
版主在上面已经写了,你找到queryResults这一段分页代码,然后将筛选的数据弄出来就行了
程序员1111 2013-09-23
  • 打赏
  • 举报
回复
clintonfx可不可以告诉我你是怎么实现的,最好有代码?
clintonfx 2013-09-14
  • 打赏
  • 举报
回复
改jqgrid代码搞定,谢谢版主了
  • 打赏
  • 举报
回复
引用 12 楼 clintonfx 的回复:
那浏览器不是要重建两次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 );//这里对记录进行了裁剪,获取当前页数据
clintonfx 2013-09-06
  • 打赏
  • 举报
回复
那浏览器不是要重建两次Table内容,如果数据量比较大,会很慢的
  • 打赏
  • 举报
回复
可以设置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;
     }
clintonfx 2013-09-03
  • 打赏
  • 举报
回复
引用 2 楼 showbo 的回复:
$('#jqGridId').jqGrid('getRowData')
这是显示的数据,分页后没在本页的没法获取吧?
  • 打赏
  • 举报
回复
$('#jqGridId').jqGrid('getRowData')
clintonfx 2013-09-03
  • 打赏
  • 举报
回复
没人回答吗?
clintonfx 2013-09-03
  • 打赏
  • 举报
回复
是自带查询,命中的数据分页后,$('#jqGridId').jqGrid('getRowData') 就不是全部命中数据了,只是本页的数据,我想要的事全部命中数据,比如查询后有20条数据,分页显示10条,第二页的数据就无法得到
  • 打赏
  • 举报
回复
你不是用的jqgrid自带的查询?jqgrid自带的查询查询后jqgrid显示的就是命中的数据,$('#jqGridId').jqGrid('getRowData') 得到就是显示的数据(命中数据) 不太明白楼主的思路。。发个代码看看喽~
clintonfx 2013-09-03
  • 打赏
  • 举报
回复
额,版主还是没看清楚我说的,是本地数据,搜索也是本地的,与服务器不交互,所有数据都在griddata里面 我现在需要的是在搜索后,获取所有搜索命中的数据,不是全部数据,不是页面显示数据
  • 打赏
  • 举报
回复
引用 6 楼 clintonfx 的回复:
不是所有数据,就是搜索分页后的数据,包括非当前页的数据
匹配的数据全部返回了吗?而不是只返回了jqgrid配置的rowNum数据量。这样获取不到所有数据的,jqgrid只保存返回的数据,分页的数据没保存 如果是返回了所有匹配的数据,只是rowNum配置小于返回的数据量导致没有显示其他的记录,可以这样获取,添加loadComplete事件,参数为jqgrid包装过的json对象,其中list属性为所有的记录集合

             loadComplete: function (data) {
               console.log(data.list)
             }
clintonfx 2013-09-03
  • 打赏
  • 举报
回复
不是所有数据,就是搜索分页后的数据,包括非当前页的数据
clintonfx 2013-09-03
  • 打赏
  • 举报
回复
引用 4 楼 showbo 的回复:
在jqgrid中,使用本地数据,搜索后如何获取搜索的数据项? -- $('#jqGridId').jqGrid('getRowData')得到的就是jqgrid中当前显示的数据 你要的不就是搜索后的数据?还是要提取所有数据,包括没显示的?需要重新reset下查询结果在调用getRowData
就是搜索后的数据,符合搜索条件的,包括没有显示的
  • 打赏
  • 举报
回复
在jqgrid中,使用本地数据,搜索后如何获取搜索的数据项? -- $('#jqGridId').jqGrid('getRowData')得到的就是jqgrid中当前显示的数据 你要的不就是搜索后的数据?还是要提取所有数据,包括没显示的?需要重新reset下查询结果在调用getRowData

87,992

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧