2

私はjqGridを持っています。行、ondbClickRowから特定のセルを強調表示したいと思います。これにより、セルの値をクリップボードにコピーする作業がユーザーにとって簡単になります。誰かがこれを行う方法を教えてもらえますか?ありがとう!

4

1 に答える 1

2

一般的には可能ですが、すぐに強調表示するには、行の選択をオフにする必要があります。したがって、コードは次のようになります。

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

結果として、あなたは次のようなグリッドを持つことができます

ここに画像の説明を入力してください

こちらの対応するデモをご覧ください

更新:グリッドセルでテキストを選択する必要がある場合は、ここで説明するアイデアを使用できます。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);
    }
});

次のデモはこれを示しています。

ここに画像の説明を入力してください

于 2011-11-30T22:58:04.593 に答える