内联编辑jqGrid时,将其他POST数据(extraparams)传递给服务器的正确语法

时间:2012-09-14 20:35:26

标签: jquery post jqgrid inline-editing

我有一个jqGrid使用内联编辑,只有这个网格的专用脚本。我正在尝试组织和整合服务器脚本,所以现在我希望在服务器上使用新脚本进行内联编辑。要使用这个新脚本,我需要在编辑内联时向脚本传递一个额外的POST变量。我无法弄清楚如何在内联编辑时将其他数据发布到服务器。

通过表单编辑,我使用editData属性在编辑表单中添加POST数据。我已在jqGrid docs中读到我可以使用extraparams参数传递其他POST数据。我似乎无法正确使用语法。

这就是我所拥有的,它不起作用:

$('#list').editRow(
        id,
        true,
        function(){
            $('input[name=customer]').autocomplete({source:customerlist});
            today = new Date();
            $('input[name=date]').val(today.getFullYear() + '-' + (today.getMonth()+1) + '-' + today.getDate());
        },
        extraparams={
            'arg1':'daily_folding_reports'
        }
    );

其中list是网格的ID。添加自动完成功能在EDIT上正确触发,但我没有正确合并extraparams。这个的正确语法是什么?

谢谢!

1 个答案:

答案 0 :(得分:2)

如果您使用editRow的排名表单,则调用应如下所示

$("#list").jqGrid('editRow', id,
    true,
    function () {
        $('input[name=customer]').autocomplete({source:customerlist});
        today = new Date();
        $('input[name=date]').val(today.getFullYear() + '-' +
            (today.getMonth()+1) + '-' + today.getDate());
    },
    null,
    null,
    { arg1: 'daily_folding_reports' });

我个人更喜欢editRow用法,可以减少null参数的数量:

$("#list").jqGrid('editRow', id, {
    keys: true,
    oneditfunc: function () {
        $('input[name=customer]').autocomplete({source:customerlist});
        today = new Date();
        $('input[name=date]').val(today.getFullYear() + '-' +
            (today.getMonth()+1) + '-' + today.getDate());
    },
    extraparam: { arg1: 'daily_folding_reports' }
});

我发现表单更具可读性(例如,请参阅the answer)。