可以用 AddRowData 定义 jqGrid 悬停文本吗?
Posted
技术标签:
【中文标题】可以用 AddRowData 定义 jqGrid 悬停文本吗?【英文标题】:Can jqGrid hover text be defined with AddRowData? 【发布时间】:2011-11-16 08:12:53 【问题描述】:在jqGrid中,是否可以在添加行数据的同时定义单元格的标题(悬停)文本?
var rowid;
for(var j=0;j<10;j++)
rowid = jQuery.Guid.New();
jQuery("#myJqGrid").jqGrid('addRowData',rowid,Amount:"$"+j+".00",Date:"09/30/2015");
我不希望在网格完成后不必在网格上循环,因为在添加行时,自定义悬停文本所需的 RowID 和数据更容易获得。
谢谢!
【问题讨论】:
【参考方案1】:如果您只需要在网格中的某些特定单元格上设置自定义工具提示,您可以使用setCell(参见here 示例)。如果您想在某个列的所有单元格上设置工具提示,但使用自定义规则(不仅仅是与单元格值相同的工具提示),您可以更好地使用cellattr。例如,您可以使用
name: 'name', index: 'name', width: 70,
cellattr: function (rowId, val, rawObject, cm, rdata)
return 'title="' + rawObject.name + ' (' + rawObject.note + ')"';
查看演示 here,其中显示以下工具提示:
如果你对性能感兴趣,你不应该使用旧的addRowData
方法,它有很多缺点:
formatoptions: reformatAfterEdit: true
使日期格式正确。您将在the documentation 中几乎找不到有关该选项的信息。
您在行之后插入的数据将全部放在同一页上。要获得正确的本地日期分页,您必须再次重新加载网格。
与data
参数结合gridview: true
参数的使用(上面的de demo)相比,addRowData
的网格包含的构建要慢得多。如果行数很大,您可以看到差异。
在创建使用cellattr
和addRowData
的演示期间,我在the line 的jqGrid 中发现了一个错误,其中两个参数rowid
和data
被交换了。我刚刚发布了the bug report。所以要将cellattr
与addRowData
一起使用,您必须对jquery.jqGrid.src.js
进行小修改。
查看使用 addRowData
here 的演示。如果使用 jquery.jqGrid.src.js
的修改版本(详见我的错误报告)
【讨论】:
> 如果您对性能感兴趣,则不应使用旧的 addRowData 方法。有什么东西可以取代 addRowData? 另外,cellattr 的 rawObject 是未定义的。是否需要进行自定义修改才能使其正常工作? @Mark Maslar:请仔细阅读我的回答。 1)我写道“data
参数与gridview: true
参数结合使用”(请参阅the first demo)为您提供更好的性能,因为addRowData
2)没有undefined
导致工具提示如果使用addRowData
,您必须使用the bug fix。它用于the second demo。
@Oleg - 你以前使用过带有 QTip 的 JqGrid 吗?我喜欢做的是悬停在一个超链接的 ID 字段上,我喜欢调用 QTip 并做一个 JSON。
@WebDev:我以前没有使用过 QTip,但您似乎应该在 <a>
元素上调用 qtip
。要回答您的问题,您应该发布更多详细信息,如何在 jqGrid 中创建超链接以及要显示的工具提示。无论如何,您都应该从包含超链接的colModel
发布列的定义。以上是关于可以用 AddRowData 定义 jqGrid 悬停文本吗?的主要内容,如果未能解决你的问题,请参考以下文章