我从json填充一个新网格 使用自定义格式化程序 格式化器定义为:
testFormatter(value,el,opts)
{
if (value==0)
{
$(el).addClass("Fail");
}
…
}
我期待单元格使用css类 但如果我检查细胞,他们就不会添加该类。
答案 0 :(得分:6)
你犯了custom formatter使用的典型错误。重要的是要理解,如果网格包含将被创建为字符串,则jqGrid具有最佳性能。在gridview:true
为您提供表现的情况下。任何custom formatter都应该在gridview:true
模式下工作,因此自定义格式化程序没有参数这是DOM元素,因此您无法使用$(el).addClass("Fail");
等操作
在一些旧答案(请参阅here和here)中,您可以找到问题的解决方法,但我建议您使用jqGrid 4.0.0的新功能:{{1} } 选项。对于undefrstanding:自定义格式化程序的目的不是添加一些HTML属性,例如类。例如,它应该用于将某些通用日期格式(如yyyy-mm-dd)转换为本地化形式,如dd.mm.yyyy(德语风格)。如果您不想更改列的格式,但只想添加一些属性,例如cellattr
(用于工具提示),title
(就像您的情况一样), <{1}}等新class
选项就是您所需要的。
在您的情况下,您可以定义
style
查看小型演示here:
在演示中,我向cellattr
列的所有单元格添加了calsses cellattr: function(rowId, cellValue, rawObject, cm, rdata) {
if (cellValue==0) {
return ' class="Fail"';
}
}
和ui-state-error
,其中ui-state-error-text
复选框已设置。