如何更改jqgrid中唯一的一行背景
how to change the only one row background in jqgrid
我要更改基于行的列值的背景颜色。
首先加载table,由rowattr完成。
编辑列后,如何在不重新加载 table 的情况下根据列更改行背景?
这是编辑数据的已知问题。解决方案取决于 jqGrid 的版本和分支,使用哪个版本,或使用的编辑模式。
如果你使用 free jqGrid fork,那么可以使用 afterSetRow
回调,它将在 any 改变行(内联或表单)后调用编辑)。 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/。您可以尝试通过导航栏的表单编辑或内联编辑按钮(由 navGrid
和 inlineNav
添加)来编辑有关内联编辑按钮 (fomatter: "actions"
) 的行。如果您要更改 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");
}
}
}
我要更改基于行的列值的背景颜色。
首先加载table,由rowattr完成。
编辑列后,如何在不重新加载 table 的情况下根据列更改行背景?
这是编辑数据的已知问题。解决方案取决于 jqGrid 的版本和分支,使用哪个版本,或使用的编辑模式。
如果你使用 free jqGrid fork,那么可以使用 afterSetRow
回调,它将在 any 改变行(内联或表单)后调用编辑)。 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/。您可以尝试通过导航栏的表单编辑或内联编辑按钮(由 navGrid
和 inlineNav
添加)来编辑有关内联编辑按钮 (fomatter: "actions"
) 的行。如果您要更改 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");
}
}
}