JQGrid在发布到服务器之前序列化数据

时间:2015-11-28 17:01:15

标签: javascript jqgrid

我有jqgrid内联编辑。我有格式为d.m.Y的日期列。我希望该列在以Y-m-d格式发送到服务器之前为modified,因为如果我将格式设置为jqgrid d.m.Y,则模型绑定器将相同的属性绑定为null。如何对serialize数据before请求服务器?

在编辑内联模式时,我有发布数据的事件:

   $(obj.grid).jqGrid('saveRow', eRowId, {
     succesfunc: function (response) {
     alert("success");
      },
     url: ddf.DDF+ "/Home/Edit",
     mtype: "POST"
   });

1 个答案:

答案 0 :(得分:1)

首先,重要的是要提到应该从显示给用户的数据中区分内部数据的格式,或者服务器和客户端之间传输的数据。 jqGrid具有formattres的概念,它允许生成格式化的HTML片段,该片段将放置在列的<td>单元格上。存在formatter: "date",可用于将输入数据转换为其他格式。如果您遵循格式化程序的逻辑,那么您将使用格式为Y-m-d的数据填充网格,但显示格式为{{1}的数据}。 d.m.Y的{​​{1}}不包含formatoptions属性,然后jqGrid会自动转换源格式formatter: "date"的编辑结果。因此,您无需进行任何其他序列化。

然而,如果您确实需要为内联编辑进行一些手动序列化,那么您应该定义jqGrid选项级别的sendFormatted: true回调。回调获取Y-m-d对象作为唯一参数,它应返回将用于将数据发送到服务器的对象或字符串。