编辑操作中的Jqgrid发送“add”为oper =“add”为什么?

时间:2012-03-08 17:12:05

标签: jqgrid

我有一个奇怪的。将数据存储从会话更改为oracle后,当我在'inlineNav'上按Edit时,它总是通过“add”操作进入服务器。任何想法为什么会发生这种情况?

$("#assessmentproduct").jqGrid({
            url: 'orthofixServices.asmx/GetProductList',
            colNames: ['id', 'Product Description', 'Commission Rate'],
            colModel: [
            { name: 'id' },
            { name: 'description', index: 'desc', width: 170, editable: true },
            { name: 'commissionrate', index: 'com', width: 80, editable: true, unformat: percentUnFormatter, formatter: percentFormatter, editrules: { number: true} }
            ],
            serializeRowData: function(data) {

                var params = new Object();
                params.id = 0;
                params.prdid = parseInt($("#prdid").val());
                params.description = data.description;
                params.commissionrate = data.commissionrate;
                return JSON.stringify({ 'passformvalue': params, 'oper': data.oper, 'id': data.id });
            },
            mtype: "POST",
            rowNum: 4,
            height: 93,
            width: 400,
            pager: '#assessmentpager',
            editurl: "orthofixServices.asmx/ModifyProductList"
        });
        $("#assessmentproduct").jqGrid('navGrid', '#assessmentpager', { add: false, edit: false, del: true, refresh: false, search: false }, {}, {}, { serializeDelData: function(postData) {
            return JSON.stringify({ 'passformvalue': null, 'oper': postData.oper, 'id': postData.id });
        }
        });
        $("#assessmentproduct").jqGrid('inlineNav', '#assessmentpager', { addParams: { position: "last", addRowParams: {
            "aftersavefunc": function() { var grid = $("#assessmentproduct"); reloadgrid(grid); }
        }
        }, editParams: { "aftersavefunc": function() { var grid = $("#assessmentproduct"); reloadgrid(grid); } }
        });

1 个答案:

答案 0 :(得分:1)

您使用JSON.stringify内的serializeRowData将发布的数据序列化为JSON。这是您描述的编码的原因。

更新:好的!现在我看到了最终的问题。误解的原因是因为您在标题中使用了oper="add"而不是oper=add。我了解是您的问题(发送引用的oper="add"而不是oper=add)。好。在oper=add操作的情况下发送edit的问题是已知的jqGrid错误,已经在github上的代码中修复了(参见here)。您可以在jquery.jqGrid.src.js中进行相同的更改并使用固定代码,直到新版本的jqGrid发布。

相关问题