Highlight cell value on doubleclick for copy

后端 未结 1 908
生来不讨喜
生来不讨喜 2021-01-15 12:26

I have a jqGrid. I would like to highlight a particular cell from a row, ondbClickRow. This would make the task of copying the value of a cell onto clipboard, easy for users

相关标签:
1条回答
  • 2021-01-15 12:38

    In general it would be possible, but you should probably switch off row selection to see highlighting immediately. So the code will be about the following:

    beforeSelectRow: function () {
        return false;
    },
    ondblClickRow: function (rowid, iRow, iCol, e) {
        $(e.target).toggleClass('ui-state-highlight');
    }
    

    As the result you can have the grid like

    enter image description here

    see the corresponding demo here

    UPDATED: If you need select the text in the grid cell you can use the idea described here. In case of usage inside of jqGrid the code could be the following:

    var selectText = function (element) {
        var doc = element.ownerDocument, selection, range;
        if (doc.body.createTextRange) { // ms
            range = doc.body.createTextRange();
            range.moveToElementText(element);
            range.select();
        } else if (window.getSelection) {
            selection = window.getSelection();
            if (selection.setBaseAndExtent) { // webkit
                selection.setBaseAndExtent(element, 0, element, 1);
            } else { // moz, opera
                range = doc.createRange();
                range.selectNodeContents(element);
                selection.removeAllRanges();
                selection.addRange(range);
            }
        }
    };
    
    $("#list").jqGrid({
        // ... jqGrid options
        ondblClickRow: function (rowid, iRow, iCol, e) {
            selectText(e.target);
        }
    });
    

    The next demo demonstrate this:

    enter image description here

    0 讨论(0)
提交回复
热议问题