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;
};

doGridComplete()我在loadCompleteie 中调用函数loadComplete : doGridComplete

4

1 回答 1

1

我不建议你这样做。

如果将每个单元格都设置为单元格编辑模式,网格会有什么优势?网格的加载会慢很多。如果某个单元格处于编辑模式,它会显示未保存的数据。只有在停止编辑时才会保存单元格。因此,用户可能会修改数据,而修改后的值根本不会保存。所以有些改变会消失。

此外,您将无法使用 和 之类的方法getCellgetRowData因为这些方法不适用于编辑单元格。

因此,如果您实施您所要求的,您将不得不做许多额外的工作以使用户的更改不会被丢弃,并且您将无法访问数据。我可以重复我回答的第一句话:我不建议你这样做。

于 2012-11-14T19:17:46.410 回答