jquery – 如何更改jqgrid自定义格式化程序中单元格的背景颜色?

我可以通过在jqgrid自定义格式化程序中更改文本颜色
function YNFormatter(cellvalue,options,rowObject)
{
    var color = (cellvalue == "Y") ? "green" : "red";
    var cellHtml = "<span style='color:" + color + "' originalValue='" +
                                cellvalue + "'>" + cellvalue + "</span>";

    return cellHtml;
 }

但是我想现在更改整个单元格的背景颜色(而不是文本颜色).

这可能吗?

解决方法

如果您想使用< span>元素内部的自定义单元格式化程序,您可以从自定义格式化程序返回
return '<span class="cellWithoutBackground" style="background-color:' +
       color + ';">' + cellvalue + '</span>';

您可以在其中定义span.cellWithoutBackground的样式,例如如下所示

span.cellWithoutBackground
{
    display:block;
    background-image:none;
    margin-right:-2px;
    margin-left:-2px;
    height:14px;
    padding:4px;
}

工作原理你可以看到现场here

UPDATED:答案是老的最好的做法是在colModel中使用cellattr回调,而不是使用自定义格式化程序.更改单元格的背景颜色通常只是将样式或类属性分配给列的单元格(< td>元素).在colModel列中定义的cellattr回调允许完全这样做.还可以使用格式化程序,如格式化程序:“checkBox”,格式化程序:“货币”,格式化程序“日期”等,但是仍然会更改列中的背景颜色.以同样的方式,可以定义为jqgrid选项(colModel的特定列之外)的rowattr回调允许分配整行(< tr>元素)的样式/类.

例如,有关cellattr的更多信息可以在herehere找到. Another answer解释了rowattr.

相关文章

页面搜索关键词突出 // 页面搜索关键词突出 $(function () {...
jQuery实时显示日期、时间 html: &lt;span id=&quot...
jQuery 添加水印 &lt;script src=&quot;../../../.....
中文:Sys.WebForms.PageRequestManagerParserErrorExceptio...
1. 用Response.Write方法 代码如下: Response.Write(&q...
Jquery实现按钮点击遮罩加载,处理完后恢复 思路: 1.点击按...