jqgrid:editData未发送到服务器

时间:2017-07-07 18:50:47

标签: jquery jqgrid

我正在使用guriddo jqGrid 5.2.1

我已按照这些问题提供的答案:

但是我定义的editData没有被发送到端点。

以下是我的jqgrid寻呼机定义中的代码:

$('#jqGrid').navGrid('#jqGridPager',
            // the buttons to appear on the toolbar of the grid
            { edit: true, 
                add: true, 
                del: true, 
                search: false, 
                refresh: false, 
                view: false, 
                position: "left", 
                cloneToTop: false,
                mtype: 'POST',
                editData: {
                    mediaPlanId : function() { return mpId; }
                }},
            // options for the Edit Dialog
            {
                editCaption: "Edit Item",
                recreateForm: true,
                checkOnUpdate : true,
                checkOnSubmit : true,
                closeAfterEdit: true,
                errorTextFormat: function (data) {
                    return 'Error: ' + data.responseText;
                }
            },
            // options for the Add Dialog
            {
                closeAfterAdd: true,
                recreateForm: true,
                errorTextFormat: function (data) {
                    return 'Error: ' + data.responseText;
                }
            },
            // options for the Delete Dailog
            {
                errorTextFormat: function (data) {
                    return 'Error: ' + data.responseText;
                }
            }

    );

mpId是在页面级别的jqGrid和jqGridPager函数之外定义的。我尝试发送值为1,但这也不起作用。我怀疑我错过了一些简单的东西,但我无法弄清楚是什么。

2 个答案:

答案 0 :(得分:1)

您将editData参数放在错误的位置。 navGrid的选项非常糟糕,可以轻松搞错。我在the wiki articlefree jqGrid分析中详细描述了这个问题,我开发了这个问题。

目前,您已将editData放在navGrid的选项中,而不是将其放在编辑/添加的选项中,这些选项是editGridRow的选项。问题在免费的jqGrid中得到解决,但是如果您更喜欢使用Guriddo jqGrid JS的商业版本,那么我建议您按以下方式重写代码:

var myErrorFunc = function (data) {
        return 'Error: ' + data.responseText;
    },
    addEditFormOptions = {
        editCaption: "Edit Item",
        recreateForm: true,
        checkOnUpdate : true,
        checkOnSubmit : true,
        closeAfterEdit: true,
        closeAfterAdd: true,
        editData: {
            mediaPlanId : function() { return mpId; }
        },
        errorTextFormat: myErrorFunc
    },
    delOptions = {
        errorTextFormat: myErrorFunc
    };

$('#jqGrid').navGrid('#jqGridPager', { search: false, refresh: false },
    addEditFormOptions, addEditFormOptions, delOptions);

答案 1 :(得分:1)

我认为更好的方法是首先阅读documentation of Guriddo jqGrid,它将指导您放置参数的位置。