1

我有一个带有内联编辑和几个冻结列的 jqgrid。我从这里收集了一些关于如何完成这项工作的信息。链接中的答案有一个多选的冻结列。但我想知道的是是否有任何方法或解决方法可以在内联编辑中编辑冻结列。

4

1 回答 1

0

我一直在尝试解决这个问题一段时间,终于能够想出适合我情况的东西。希望你能做类似的事情。

我创建了以下要在单击编辑按钮时调用的函数:

var editRow = function(rowId) {
    $('#' + gridId).editRow(rowId);
    $('#' + gridId + '_frozen').editRow(rowId);
};

这将使冻结的列对用户显示为可编辑的。

我创建了以下要在单击保存按钮时调用的函数:

var saveRow = function(rowId) {
    $('#' + gridId + '_frozen' + ' #' + rowId + ' > td').each(function () {
        var col = $(this).attr('aria-describedby');
        $('#' + gridId + ' #' + rowId + ' > td[aria-describedby="' + col + '"]')
                .children(':first')
                .val($(this).children(':first').val());
    });
    $('#' + gridId).saveRow(rowId);
};

此代码将从冻结单元格中获取值并将其复制到底层隐藏单元格 - 这是在保存时提交其值的单元格。

我还有一个取消选项,它调用以下方法:

var cancelRow = function(rowId) {
    $('#' + gridId).restoreRow(rowId);
    $('#' + gridId + '_frozen').restoreRow(rowId);
};

更新: 我发现此解决方案仅适用于 IE(8),不适用于 Chrome 或 Firefox。我正在开发的 Web 应用程序只需要与 IE8 兼容,但我也会尝试为其他浏览器找到解决方案。

于 2014-04-21T18:41:12.320 回答