Выделите значение ячейки при двойном щелчке для копирования - PullRequest
2 голосов
/ 01 декабря 2011

У меня есть jqGrid.Я хотел бы выделить конкретную ячейку из строки ondbClickRow.Это сделало бы задачу копирования значения ячейки в буфер обмена легкой для пользователей.Кто-нибудь может подсказать мне, как это сделать?Спасибо!

1 Ответ

2 голосов
/ 01 декабря 2011

В целом это было бы возможно, но вам, вероятно, следует отключить выбор строки, чтобы сразу же увидеть выделение.Таким образом, код будет примерно следующим:

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

В результате вы можете получить сетку, подобную

enter image description here

, см. Соответствующую демонстрационную версию здесь

ОБНОВЛЕНО : Если вам нужно выбрать текст в ячейке сетки, вы можете использовать идею, описанную здесь .В случае использования внутри jqGrid код может быть следующим:

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

следующая демонстрация демонстрирует это:

enter image description here

...