如何在jqGrid“添加行”请求中发送额外数据?

时间:2012-07-05 21:19:36

标签: asp.net-mvc jqgrid jqgrid-asp.net

  • 使用jqGrid的ASP.NET MVC组件

我有一个jqGrid,它的工作非常出色,除了一件事:它是一个鞋子网格,我必须与一个ShoeOwner关联(对象名称改为保护无辜者)

因此,当我有一个网格时,它只显示特定ShoeOwner拥有的鞋子。当系统的用户决定添加一个Shoe时,在发送该请求之前,我需要在请求中添加一个附加参数,将该新Shoe与此特定ShoeOwner相关联。 (否则请求将作为一个孤独的鞋子到达控制器。)

由于我正在使用MVC组件,因此我不能在实例化时将其粘贴到jqGrid()对象中 - 似乎我需要:

  • 将参数添加到jqGrid将发送添加(或编辑)请求时发送的数据集(现在它只发送Shoe信息) - 这个问题是在实例化之后,我必须以编程方式将参数添加到jqGrid,到目前为止,我无法使用editParamsaddParams来执行此操作。

  • 在请求发出之前挂钩事件,然后添加其他信息。这里的问题是我无法在发送“添加新行”请求之前找到可靠触发的事件。

有谁知道如何将添加了jqGrid的实体与其所属的父实体相关联?

1 个答案:

答案 0 :(得分:1)

您可以收听addOptions / editOptions的beforeSubmit事件..以向请求添加其他参数。

实施例

var addOptions = {
    editCaption: 'Add Post',
    processData: "Saving...",
    width: 420,
    closeAfterEdit: true,
    closeOnEscape: true,

    beforeSubmit: function (postdata, form) {
        var $grid = $(gridName);

            // additional parameters
        postdata.AdditionalData1 = ...
        postdata.AdditionalData2 = ...

        return [true];
    }
};


$(gridName).jqGrid('navGrid', pagerName, {
            cloneToTop: true,
            search: true,
            view: true
        },

editOptions, addOptions, deleteOptions);