1

jqGrid の行編集機能を使用してインライン編集を行い、データをグリッドに保存しています (つまり、url に「clientArray」を使用しています)。「onSelectRow」関数を使用して、選択行を編集モードにしています。

このロジックは、保存ボタンを使用して行を保存すると正常に機能しますが、最初の行がまだ編集モードのときに別の行をクリックすると、最初の行の saveRow 関数を呼び出しても変更が保存されず、行フィールドはそれらの以前の値。

「beforeSelectRow」関数の有無にかかわらず、これを試しました。このコンテキストで行の変更を適切に保存するにはどうすればよいですか?

ロジックは次のとおりです。

var iRow;

...

beforeSelectRow: function (id, e) {
    if (id != null) {
        if (iRow != null && iRow != id) {
            SaveRow();
        }
    }
    return true;
},

onSelectRow: function (id, status, e) {
    if (id != null) {
        if (iRow != null && iRow != id) {
            SaveRow();
        }
        if (iRow == null) {
            iRow = id;
            $("#GridMain").jqGrid("editRow", id, false);
            $("#RowPanel").show();
        }
    }
}

function SaveRow() {
    // Save the current row if it was being edited
    if (iRow != null) {
        $("#GridMain").jqGrid("saveRow", iRow, { url: "clientArray" });
        $("#RowPanel").hide();
        iRow = null;
    }
}
4

1 に答える 1