如何更改jqgrid中唯一的一行背景
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何更改jqgrid中唯一的一行背景相关的知识,希望对你有一定的参考价值。
我要更改基于行的列值的背景颜色。
在第一次加载表时,它由rowattr完成。
编辑列后,如何在不重新加载表的情况下根据列更改行背景?
答案
已知编辑数据的问题。解决方案取决于使用的jqGrid的版本和分支,或者使用的编辑模式。
如果你使用free jqGrid fork,那么可以使用afterSetRow
回调,它将在任何更改行(内联或表单编辑)后调用。以下代码为afterSetRow
afterSetRow: function (options) {
if (options.localData.closed) {
$(options.tr).addClass("ui-state-error ui-state-error-text");
} else {
$(options.tr).removeClass("ui-state-error ui-state-error-text");
}
}
可以用于额外的rowattr
rowattr: function (item) {
if (item.closed) {
return {
"class": "ui-state-error ui-state-error-text"
};
}
}
请参阅演示https://jsfiddle.net/k5j2ojx2/。您可以尝试编辑关于内联编辑按钮(fomatter: "actions"
)的行,通过表单编辑或导航栏的内联编辑按钮(由navGrid
和inlineNav
添加)。如果要更改Closed
列的复选框,则行的颜色也将更改。
更新:如果您使用单元格编辑,那么您应该使用afterSaveCell
回调。例如,
afterSaveCell: function (rowid, name, value, iRow, iCol) {
if (name === "closed") {
if (value === "true") {
$(this.rows[iRow]).addClass("ui-state-error ui-state-error-text");
} else {
$(this.rows[iRow]).removeClass("ui-state-error ui-state-error-text");
}
}
}
见https://jsfiddle.net/k5j2ojx2/1/
以上是关于如何更改jqgrid中唯一的一行背景的主要内容,如果未能解决你的问题,请参考以下文章