如何在jqgrid中为列的所有单元格启用编辑单元格

时间:2012-11-14 18:05:35

标签: jquery jqgrid

我有一个可编辑的网格。当网格加载时,我想要特定列的所有单元格 处于编辑模式,即准备好进行数据捕获。我试过这个,但它只放了最后一个单元格 在编辑模式下。我怎样才能做到这一点?

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()中调用函数loadComplete,即 loadComplete : doGridComplete

1 个答案:

答案 0 :(得分:1)

我不建议你这样做。

如果在单元格编辑模式下设置每个单元格,哪个优势会有网格?网格的加载速度会慢得多。如果某个单元格处于编辑模式,则显示未保存的数据。只有在停止编辑时才会保存单元格。因此,用户可能会修改数据,修改后的值根本不会保存。所以一些变化可能会消失。

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

因此,如果您实施了所要求的内容,则必须执行许多其他工作以使用户的更改不被丢弃,并且您将无法访问数据。我可以重复我的答案的第一句话:我不建议你这样做。