可以使用AddRowData定义jqGrid悬停文本吗?

时间:2011-09-13 16:27:15

标签: jquery jqgrid

在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 个答案:

答案 0 :(得分:15)

如果您只需要在网格中的某些特定单元格上设置自定义工具提示,则可以使用setCell(请参阅here示例)。如果要在某些列的所有单元格上设置工具提示,但使用自定义规则(不仅仅是与单元格值相同的工具提示),则可以更好地使用cellattr。例如,您可以使用

{name: 'name', index: 'name', width: 70,
    cellattr: function (rowId, val, rawObject, cm, rdata) {
        return 'title="' + rawObject.name + ' (' + rawObject.note + ')"';
    }}

查看显示以下工具提示的演示here

enter image description here

如果您对性能感兴趣,则不应使用具有许多缺点的旧addRowData方法:

  • 如果输入数据中有日期并使用格式化程序:'date',则必须使用formatoptions: {reformatAfterEdit: true}使日期格式正确。您将在the documentation中找到几乎没有关于该选项的信息。
  • 您在行之后插入的数据将全部放在同一页面上。要拥有正确的本地日期分页,您必须再次重新加载网格。
  • data参数结合gridview: true参数(上面的de demo)的使用进行比较,网格的构建包含addRowData的速度非常慢。如果行数很大,您可以看到差异。
  • 在创建使用cellattraddRowData的演示版时,我在the line的jqGrid中发现了一个错误,其中交换了两个参数rowiddata 。我刚刚发布了the bug report。因此,要将cellattraddRowData一起使用,您必须在jquery.jqGrid.src.js中进行少量修改。

查看使用addRowData here的演示。如果使用jquery.jqGrid.src.js的修改版本(有关详细信息,请参阅我的错误报告)