欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

jqGrid 常用 总结 -2

程序员文章站 2024-01-30 11:58:34
这次的总结是针对于一次bug,先说下我们遇到的问题,就是后台人员告诉我们添加数据到100条数据的时候,101条就看不到,当时我觉得就是没有分页的原因,所以我就以为在jqgrid中设置一个loadonce就行了。这样设置之后,确实可以翻页了。但是等到翻到第二页的时候,我们的数据有很多报错了,全是und ......

  这次的总结是针对于一次bug,先说下我们遇到的问题,就是后台人员告诉我们添加数据到100条数据的时候,101条就看不到,当时我觉得就是没有分页的原因,所以我就以为在jqgrid中设置一个loadonce就行了。这样设置之后,确实可以翻页了。但是等到翻到第二页的时候,我们的数据有很多报错了,全是underfind,这个时候就可以看出来是formatter这个没有起作用,然后我研究了好久,确实没有找到有用的方法,(如果大家有办法的话,可以给我留言)那只能曲线救国了。

  就是使用jquery的ajax请求回来数据之后,然后在设置jqgrid中的data为本地的数据,这样。请看下面的代码:

1 var mydata = "";//获取到的全部的数据
2 var this_page = 1;//当前的页数
 1 function load_data_again(){ //重新加载数据
 2                 jquery("#table_list_1").jqgrid("cleargriddata");
 3                 
 4                 console.log("当前的页数:",this_page)
 5                 $.ajax({
 6                     url: "{:url('relatives_friends_list')}",
 7                     data:{
 8                         bind_type:3
 9                     },
10                     success:function(data){
11                         if(data){
12                             mydata = data;//mydata为全局变量,这个是为了赋值数据用的
13                             $("#table_list_1").jqgrid('setgridparam', {  
14                                 data:mydata,
15                                 page:this_page,//这个也是全局的变量,这个会在loadcomplete之后获取到当前的页面
16                             }).trigger("reloadgrid");
17                         }
18                     }
19                 })
20             }

在程序中已经写的比较明白了,就是mydata为全局变量,为了存储获取到的数据,this_page为当前页面的页面,这个主要是为了判断当前是在哪个页面。在下面我会jqgrid中的

loadcomplete

代码放在下面

1 loadcomplete:function(t){
2   this_page = $('#table_list_1').getgridparam('page'); // current page
3 }