jqGrid 3.4中的自定义数据工具提示

Jos*_*h E 3 jquery jqgrid

我一直在使用优秀的jqGrid插件,效果很好.最近,我被要求为网格实现一些自定义工具提示.现在,文档非常详尽,但它没有解决如何(如果可能的话)完成此任务.

这是我正在寻找的一个例子:

| col A | col B | ...
| 数据| 数据| ...
| (鼠标悬停) - 数据x

我搜索了文档和源代码,了解如何/在何处定义工具提示,但我得到的最接近的是编辑模式下按钮的自定义工具提示.我确实有一个afterInsertRow事件的事件处理程序 - 通过我可以得到rowId等,但我不知道如何在该事件中定义HTML属性.

编辑:澄清一下,我想将单个单元格的title属性设置为特定的数据(我在jqgrid模型中已有)

编辑2:我尝试将以下内容插入到afterInsertRow事件中,没有任何乐趣,其中aData是JSON模型,ExpirationDate是模型名称:

afterInsertRow: function(rowid, aData) {
                grid.setCell(rowid, 'ExpirationDate', '', { title: aData.ExpiredBy });
Run Code Online (Sandbox Code Playgroud)

但是,同一事件处理程序中的以下代码仍可正常工作:

grid.setCell(rowid, 'ExpirationDate', '', { color: 'red' });
Run Code Online (Sandbox Code Playgroud)

编辑3:使用redsquare的优秀suggesstions,我已经确定title属性是在afterInsertRow事件之后的某个时间设置的:我已经逐步完成并确定它是通过评论中概述的任一方法正确设置的,但不幸的是,我尝试更进一步时,获取此位置的源代码不可用,这意味着我无法确切地看到标题的更改位置.

编辑4 :(感谢您的耐心,并帮助我完成这个!)再次采取redsquare关于尝试loadComplete事件的评论,我能够成功获取并修改单元格的属性,但title属性固执地保持不变:

loadComplete: function() {
                var ids = grid.getDataIDs();
                for (var i = 0; i < ids.length; i++) {
                    grid.setCell(ids[i], 'ExpirationDate', '', { title: 'FOO!'});
                }
Run Code Online (Sandbox Code Playgroud)

最终编辑:请参阅下面的答案 - 在redsquare的帮助下,我找到了问题的根本原因.

任何帮助,将不胜感激

Jos*_*h E 13

好的,我在对所设置的属性进行仔细检查后发现了这个问题.事实证明,我,我是指关节,没有仔细阅读grid.setCell(...)方法的文档:

此方法可以更改特定单元格的内容,并可以设置类或样式属性.其中:•rowid:行的id,

•colname:列的名称(此参数可以是从0开始的数字)

•data:可以放入单元格的内容.如果为空字符串,则不会更改内容

•class:如果class是string,那么我们使用addClass向单元格添加一个类; 如果class是一个数组,我们通过css设置新的css属性

•properties:设置单元格的属性

示例:

setCell("10","tax","',{color:'red','text-align':'center'}',{title:'Sales Tax'})

将第10行的税字段内容设置为红色并居中,并将标题更改为"销售税".

简而言之,我传递给方法的参数是设置css属性(第4个arg)而不是属性(第5个arg).结果是添加了两个标题属性,其中一个属性格式不正确.下面显示了正确的方法调用,以完成我想要做的事情:

grid.setCell(rowid, 'ExpirationDate', '', '',{ title: aData.ExpiredBy});
Run Code Online (Sandbox Code Playgroud)

再次感谢redsquare帮助解决这个问题!