文档章节

jqGrid以setGridParam方式postData,包含历史数据的问题

o
 osc_ogi0qclx
发布于 2019/08/23 18:20
字数 477
阅读 28
收藏 0

精选30+云产品,助力企业轻松上云!>>>

  系统在使用jqGrid时,如果某些页面的查询项是复选框,后台是数组接收的,就会出现传值不正确问题。

1、项目中某查询页面存在的复选框:待处理S1,正在处理S2,已处理S3;

使用jqGrid提交查询数据方法如下:

$("#xxTable").setGridParam({

  datatype : "json",
  postData: {
    "id" : $("#id").val(),
    "nodeStatus" : checkBoxValues("nodeStatus")
   }
  }).trigger("reloadGrid", [{ page: 1}]);

2、该问题调查如下:

  第一次传值:id传123456,勾选待处理

       postData: id:123456  , nodeStatus : [S0]
       第二次传值:id传1234567,勾选正在处理
       postData:id :1234567 , nodeStatus : [S1]
       第三次传值:勾选待处理、正在处理
       postData:nodeStatus : [S0, S1]
       第四次传值:勾选待处理、已处理
       postData:nodeStatus : [S0, S2]
       第五次传值:勾选待处理、正在处理、已处理
       postData:nodeStatus : [S0, S1, S2]
       第六次传值:勾选正在处理、已处理
       postData:nodeStatus : [S1, S2, S2]
       第七次传值:勾选待处理、已处理
       postData:nodeStatus : [S0, S2, S2]
       第八次传值:勾选已处理
       postData:nodeStatus : [S2, S2, S2]

  不难发现,它会启用上次提交的历史数据,并将本次提交的数据对应替换,如果是单个值还好,如果是数组那么就会出现问题。  

3、解决该问题方式:

  A、在jqGrid内使用serializeGridData 事件,此事件返回一个要传到后台的序列化数据,这里进行重新赋值后返回发到后台:

              serializeGridData : function (postData)
              {
                postData.nodeStatus=checkBoxValues("nodeStatus");
                return JSON.stringify(postData);
              },
   此方法有一个弊端,就是不能一劳永逸,如果后期查询页面又新增了一个复选框查询项,那么记得一定要在此处重新赋值。

  B、简单粗暴的方法,每次请求前都将历史数据清除掉:

    var postData = $("#xxTable").jqGrid("getGridParam", "postData");  

    $.each(postData, function (k, v) {  

      delete postData[k];  
    }); 
    此方法可以提炼为一个公共方法使用。

 

o
粉丝 0
博文 500
码字总数 0
作品 0
私信 提问
加载中
请先登录后再评论。

暂无文章

土木转行Python的几个方向? - 知乎

零、背景 近一段时间有不少土木或兄弟专业的朋友加微信问我,自学Python一段时间后又出现了迷茫期,怎么破?不知道接下来走向哪里?下面,我把我知道的告诉你,至于Python之父是不是廖雪峰,...

osc_2ak6wwpl
27分钟前
0
0
如何选购便宜的SSL证书

我们在购物的时候经常会货比三家,而价格会占主导因素,有时候价格太高会让我们望而却步。而在选购SSL证书的时候也是同样的道理,市面上可供选择的SSL证书品牌和类型繁多,价格有高有低,那么...

安信证书
28分钟前
5
0
Spark SQL 中 Broadcast Join 一定比 Shuffle Join 快?那你就错了。

本资料来自 Workday 的软件开发工程师 Jianneng Li 在 Spark Summit North America 2020 的 《On Improving Broadcast Joins in Spark SQL》议题的分享。 文章目录 1 背景 2 TPC-H 测试 3 Br...

osc_k8v7r34l
29分钟前
13
0
空间直线与球面相交算法

目录 1. 原理推导 1.1. 直线公式 1.2. 求交 2. 具体实现 3. 参考 1. 原理推导 1.1. 直线公式 在严格的数学定义中,直线是无线延长,没有端点的线;射线是一端有端点,另外一段没有端点无线延...

osc_nfjwhlc1
29分钟前
15
0
七天用Go写个docker(第六天)

今天主要来实现一下 go-docker ps 的功能,也就是查看当前有哪些容器,简单说下思路,当我们启动一个容器时就为该容器创建一个文件夹用来保存该容器的一些信息,如果我们给容器指定了名字,那...

osc_zsaazovz
31分钟前
19
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部