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

Mar*_*lar 5 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"});
  }
Run Code Online (Sandbox Code Playgroud)

我不希望在完成后不必遍历网格,因为在添加行时更容易获得RowID和自定义悬停文本所需的数据.

谢谢!

Ole*_*leg 15

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

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

请参阅此处的演示,其中显示以下工具提示:

在此输入图像描述

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

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

请参阅addRowData 此处使用的演示.如果使用修改版本jquery.jqGrid.src.js(详见我的bug报告)