为了账号安全,请及时绑定邮箱和手机立即绑定

jqGrid自定义格式在addClass上失败

jqGrid自定义格式在addClass上失败

一只萌萌小番薯 2019-11-04 10:16:08
我用定义格式器的自定义格式器从json填充了一个新网格:testFormatter(value,el,opts){     if (value==0)     {          $(el).addClass("Fail");     }     …}我希望这些单元格使用css类,但是如果我检查这些单元格,则它们不会添加该类。
查看完整描述

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'格中。


查看完整回答
反对 回复 2019-11-04
?
红糖糍粑

TA贡献1815条经验 获得超6个赞

有许多有趣的新选项,文档中尚未描述。例如,列模板是在jqGrid 3.8.2中引入的,但在文档中仍未进行描述(请参见此处)。如果您在trirand论坛中搜索,cellattr则会找到一些信息。 

查看完整回答
反对 回复 2019-11-04
  • 2 回答
  • 0 关注
  • 540 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信