2011-11-30 76 views
2

我有一个jqGrid。我想突出显示一行中的特定单元格,ondbClickRow。这将使得将单元格的值复制到剪贴板的任务变得容易,对于用户来说也是如此。有人可以指导我如何做到这一点?谢谢!突出显示复制的双击单元格值

回答

2

通常情况下,这可能会发生,但您应该关闭行选择以立即查看突出显示。因此,代码会了解以下信息:

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

其结果是,你可以有一个像

enter image description here

看到相应的演示here

修订格:如果您需要选择在网格单元格中的文字可以使用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); 
    } 
}); 

next demo证明这一点:

enter image description here

+0

感谢奥列格。这与我想要的非常接近。在示例中的“日期”列中,是否有任何方式可以获取选定的整个日期,而不是通过 - 或/?进行分隔。我的用户将选择的列是URL。 – Jai

+0

@Jai:我不明白你的意思。如何看到整个单元格上方的图片将突出显示。 – Oleg

+0

我试图发布图片,但没有这样做。请在下面的屏幕截图中查看2007年10月1日的数据。 [截图](https://picasaweb.google.com/115278692335129964011/Stackof#5681191684714414994)我正在寻找的副本,而不是只突出显示单元 – Jai

相关问题