2 回答
TA贡献1943条经验 获得超7个赞
您犯了使用自定义格式化程序的典型错误。重要的是要理解,如果将网格包含创建为字符串,则jqGrid的性能最佳。在这种情况下,可以gridview:true为您提供性能。任何自定义格式化程序都应在该gridview:true模式下工作,因此自定义格式化程序没有 DOM元素作为参数,因此您不能使用类似$(el).addClass("Fail");
在一些旧的答案中(请参见此处和此处),您可以找到如何解决问题的方法,但是我建议您使用jqGrid 4.0.0:cellattroption的新功能。出于不确定的目的:自定义格式化程序的目的不是添加一些HTML属性,例如class。例如,应将其用于将某些通用日期格式(如yyyy-mm-dd)转换为本地化格式(如dd.mm.yyyy(德语样式))。如果您不想更改列的格式,而只想添加一些属性title(如(用于工具提示),class(如您的情况),style等等),cellattr则需要新的选项。
您可以定义
cellattr: function(rowId, cellValue, rawObject, cm, rdata) {
if (cellValue==0) {
return ' class="Fail"';
}
}
在此处查看一个小演示:
在演示中,我将calsses ui-state-error和添加ui-state-error-text到设置了复选框的'Client'column的所有单元'Closed'格中。
TA贡献1815条经验 获得超6个赞
有许多有趣的新选项,文档中尚未描述。例如,列模板是在jqGrid 3.8.2中引入的,但在文档中仍未进行描述(请参见此处)。如果您在trirand论坛中搜索,cellattr则会找到一些信息。
- 2 回答
- 0 关注
- 563 浏览
添加回答
举报