微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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.

原文地址:https://www.jb51.cc/jquery/175975.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐