jqgrid post请求数据json

use*_*211 2 post json jqgrid

我的网格数据读取配置为使用 json 格式。这是配置

    url:"devitem.json",
    mtype: "POST",
    datatype: "json",

    ajaxGridOptions: {
      type    : 'post',
      async   : false,
      error   : function() { alert('Something bad happened. Stopping');},
    },

    jsonReader : {
      root        : "rows",
      page        : "page",
      total       : "total",
      records     : "records",
      repeatitems : true,
      cell        : "cell",
      id          : "0",
      userdata    : "userdata",
    },
Run Code Online (Sandbox Code Playgroud)

客户端的读取请求总是发送以下格式的参数:

_search=false&nd=1317286048991&rows=25&page=1&sidx=device_id&sord=asc&totalrows=100 如何将其转换为 json 格式?

我还设置了 postData 选项

postData    : JSON.stringify({"dev_post_reqtype":"read","dev_post_devndx":"1","dev_post_reccount":"55"}),
Run Code Online (Sandbox Code Playgroud)

它有效,但显然无法更改

我的寻呼机有这个问题。为了在更改页码后进行测试,我调用此函数

    function DEVpager_event(pgevent) {

 var page = jQuery("#DEVtbl").getGridParam('page');
  alert (pgevent+page) ;

// changed devndx for test only
var jdata = JSON.stringify({"dev_post_reqtype":"read","dev_post_devndx":"25","dev_post_reccount":"55"}) ;
Run Code Online (Sandbox Code Playgroud)

jQuery("#DEVtbl").jqGrid('setGridParam', 'postData', jdata); };

页面随我的选择而更改,但 postData 没有更改,谢谢您的帮助

Ole*_*leg 6

如果我理解正确您的问题,您应该使用以下形式的serializeGridData :

serializeGridData: function(postData) {
    return JSON.stringify(postData);
}
Run Code Online (Sandbox Code Playgroud)

如果您需要向服务器发送一些额外的数据,您可以另外使用

postData: {
    dev_post_reqtype: "read",
    dev_post_devndx: "1",
    dev_post_reccount: "55"
}
Run Code Online (Sandbox Code Playgroud)

或者

postData: {
    dev_post_reqtype: "read",
    dev_post_devndx: 1,
    dev_post_reccount: 55
}
Run Code Online (Sandbox Code Playgroud)

取决于您需要的类型dev_post_devndx和属性(字符串或整数)。dev_post_reccount