0

行削除 API の仕組みに関するドキュメントhereを読んでいましたが、余分なパラメーターをきれいに渡す方法が見つかりませんでした。編集時およびデータの取得時に可能ですが、削除では可能ではありません。

基本的になぜそれが必要なのかを説明するために、私はセッションベースの編集可能なグリッドを持っていますが、セッションには行がセッションに書き込まれたときに生成される一意の GUID が必要です。どの入力が彼のものかを知っています。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 に答える