0

我在这里阅读了有关删除行 API 如何工作的文档,但我没有找到任何方法来干净地传递额外的参数。它可以在编辑和获取数据时使用,但不能在删除时使用。

基本上为了解释我为什么需要它,我有基于会话的可编辑网格,但是会话需要一个唯一的 guid,它是在将行写入会话时生成的,然后我将它们呈现为具有特定 ID 的隐藏输入(网格外部),以便每个网格知道哪个输入是他的。我知道 gridDelRow 有“url”选项,我可以将 url 与查询字符串连接起来,但是它会破坏我当前看起来像这样的控制器操作方法的当前行为

public virtual ActionResult EditRow(RowGridViewModel rowGridViewModel, string guid)
{
        return HandleGridItemEdit(rowGridViewModel, guid);
}

这是我的 jqGrid API 调用

$(gridObject).jqGrid("delGridRow", id, {
    "top": "",
    "left": "",
    "width": "150px",
    "zIndex": 99999,
    "modal": true,
    "drag": false,
    "closeOnEscape": true,
});

因此,如果我编辑 url 选项,它会破坏我当前的功能,这不是一个选项,因为使用了相同的行编辑方法。我也知道我可以用这些数据渲染隐藏列,但这真的很难看。因此,如果您对如何做到这一点有任何建议,我将不胜感激。

4

2 回答 2

1

你可以这样做

function deleteRow(id, gridObject) {
    var gridGuid = getGridSessionGuid(gridObject);
    $(gridObject).jqGrid("delGridRow", id, { "delData": { guid: gridGuid } });
}

编辑: Ups 没有看到评论

于 2013-08-27T06:09:54.197 回答
0

我实际上找到了一个不错的解决方案,它不会破坏我的代码我只需要注意所有操作方法都具有与参数“rowGridViewModel”相同的名称。

    function deleteRow(id, gridObject) {
        var gridGuid = getGridSessionGuid(gridObject);
        $(gridObject).jqGrid("delGridRow", id, {
            "serializeDelData": function (postdata) {
                return { rowGridViewModel: postdata, guid: gridGuid };
            },
        });
    }
于 2013-08-26T11:08:52.383 回答