JQGrid cellEdit不允许选择行

时间:2014-12-09 08:22:15

标签: jquery jqgrid

我正在尝试为我的JQGrid中的几个列实现cellEdit功能,这完全发生在这里 'cellEdit': true, 'cellsubmit': 'remote', EditUrl我正在动态设置。

但是当我在代码中使用这些行时,我无法在单击单元格时选择行。我在用 multiselect: true, multiboxonly: true,

这破坏了我的代码。请帮忙。我怎样才能获得cellEdit和行选择。

2 个答案:

答案 0 :(得分:1)

您似乎无法一起使用multiselect: true单元格编辑。您确实需要使用beforeSelectRow回调来解决问题。

The demo演示了解决方案。它使用beforeSelectRow的以下实现:

beforeSelectRow: function (rowid, e) {
    var $self = $(this), iCol, cm,
        $td = $(e.target).closest("tr.jqgrow>td"),
        $tr = $td.closest("tr.jqgrow"),
        p = $self.jqGrid("getGridParam");

    if ($(e.target).is("input[type=checkbox]") && $td.length > 0) {
       iCol = $.jgrid.getCellIndex($td[0]);
       cm = p.colModel[iCol];
       if (cm != null && cm.name === "cb") {
           // multiselect checkbox is clicked
           $self.jqGrid("setSelection", $tr.attr("id"), true ,e);
       }
    }
    return false;
}

答案 1 :(得分:0)

从Oleg的评论中粘贴原始解决方案:

编辑jquery.jqGrid.src.js并添加return;

        if(ts.p.cellEdit === true) {
            if(ts.p.multiselect && scb && cSel){
                $(ts).jqGrid("setSelection", ri ,true,e);
            } else if (td.length > 0) {
                ri = ptr[0].rowIndex;
                try {$(ts).jqGrid("editCell",ri,ci,true);} catch (_) {}
            }
            return; // <---------------------------------------
        }