0

編集可能なグリッドがあります。グリッドが読み込まれると、特定の列のすべてのセルを編集モード、つまりデータキャプチャの準備ができているようにします。これを試しましたが、最後のセルのみが編集モードになります。どうすればこれを達成できますか?

function doGridComplete()
{
    var ids = $("#myGrid").jqGrid('getDataIDs');
    var grid = $("#myGrid");

    var marksColIdx = getColumnIndexByName(grid, 'marksObtained');

    var rowId = 1;
    for(var i = 0; i < ids.length; i++)
    {
    //Edit all cells
    grid.jqGrid('editCell', rowId, marksColIdx, true);
    rowId++;
    }
}

var getColumnIndexByName = function(gr,columnName) {
    var cm = gr.jqGrid('getGridParam','colModel');
    for (var i=0,l=cm.length; i<l; i++) {
    if (cm[i].name===columnName) {
        return i; // return the index
    }
    }
    return -1;
};

ie で関数doGridComplete()を呼び出しますloadCompleteloadComplete : doGridComplete

4

1 に答える 1

1

これを行うことはお勧めしません。

すべてのセルをセル編集モードに設定した場合、グリッドにはどのような利点がありますか?グリッドの読み込みは非常に遅くなります。一部のセルが編集モードになっている場合、保存されていないデータが表示されます。編集を停止する場合にのみ、セルが保存されます。したがって、ユーザーがデータを変更し、変更された値がまったく保存されない可能性があります。したがって、一部の変更は消えることがあります。

getCellさらに、メソッドは編集セルでは機能しgetRowDataないため、のようなメソッドを使用することはできません。

したがって、要求した内容を実装する場合、ユーザーの変更を破棄しないようにするために多くの追加作業を行う必要があり、データへのアクセスに問題が発生します。私の答えの最初の文を繰り返すことができます:これを行うことはお勧めしません。

于 2012-11-14T19:17:46.410 に答える