jqGrid rowformatter 基于单独的单元格值
jqGrid rowformatter based on separate cells value
我想根据其中包含的文本更改单个单元格的颜色。该单元格将是一个状态,因此可以是新的、已发送的或已分配的。问题在于此文本值是可翻译的,因此像下面的代码这样的格式化程序将无法正常工作。
function StatusColourFormatter(cellValue, options, rowObject){
if(cellValue === 'NULL' || cellValue === 'undefined' || cellValue === 'null' || cellValue === null || cellValue === ' ' || cellValue == ' '){
cellValue = '';
return cellValue;
}
if(cellValue == "New"){
rowsNew[rowsNew.length] = options.rowId;
return cellValue;
}
if(cellValue == "Sent"){
rowsSent[rowsSent.length] = options.rowId;
return cellValue
}
if(cellValue =="Assigned"){
rowsAssigned[rowsAssigned.length] = options.rowId;
return cellValue
}
}
所以我想做的是有一个隐藏的列,值总是英文,但我想更改保存翻译值的单元格的颜色。这可能吗,我将如何去做呢?
单元格的文本颜色或背景颜色可以通过设置单元格的 class
或 style
属性(在 <td>
上)来更改。 jqGrid 有 cellattr
回调,这对这里有帮助。了解自定义格式化程序的目标是构建 单元格内容 而不是 单元格属性 很重要。要更改单元格属性,应使用 cellattr
.
因此我建议您根据单元格的内容分配不同的 class
属性
cellattr: function (rowId, cellValue) { //, rawObject, cm, item) {
switch (cellValue) {
case "New":
return "class='new_color'";
break;
case "Sent":
return "class='sent_color'";
break;
case "Assigned":
return "class='assigned_color'";
break;
}
}
要根据另一项(不是当前 cellValue
)的内容设置值,应将 rawObject, cm, item
参数添加到 cellValue
并使用 item
或rawObject
对象。在大多数情况下,选择 item
参数并将列名作为 属性 将是免费 jqGrid 的最佳选择。
此外还应该定义CSS规则,它使用类并设置color
或background-color
,例如如下
.new_color {
background-color: green;
}
.sent_color {
background-color: yellow;
}
.assigned_color {
background-color: red;
}
.new_color, .sent_color, .assigned_color {
background-image: none;
}
我想根据其中包含的文本更改单个单元格的颜色。该单元格将是一个状态,因此可以是新的、已发送的或已分配的。问题在于此文本值是可翻译的,因此像下面的代码这样的格式化程序将无法正常工作。
function StatusColourFormatter(cellValue, options, rowObject){
if(cellValue === 'NULL' || cellValue === 'undefined' || cellValue === 'null' || cellValue === null || cellValue === ' ' || cellValue == ' '){
cellValue = '';
return cellValue;
}
if(cellValue == "New"){
rowsNew[rowsNew.length] = options.rowId;
return cellValue;
}
if(cellValue == "Sent"){
rowsSent[rowsSent.length] = options.rowId;
return cellValue
}
if(cellValue =="Assigned"){
rowsAssigned[rowsAssigned.length] = options.rowId;
return cellValue
}
}
所以我想做的是有一个隐藏的列,值总是英文,但我想更改保存翻译值的单元格的颜色。这可能吗,我将如何去做呢?
单元格的文本颜色或背景颜色可以通过设置单元格的 class
或 style
属性(在 <td>
上)来更改。 jqGrid 有 cellattr
回调,这对这里有帮助。了解自定义格式化程序的目标是构建 单元格内容 而不是 单元格属性 很重要。要更改单元格属性,应使用 cellattr
.
因此我建议您根据单元格的内容分配不同的 class
属性
cellattr: function (rowId, cellValue) { //, rawObject, cm, item) {
switch (cellValue) {
case "New":
return "class='new_color'";
break;
case "Sent":
return "class='sent_color'";
break;
case "Assigned":
return "class='assigned_color'";
break;
}
}
要根据另一项(不是当前 cellValue
)的内容设置值,应将 rawObject, cm, item
参数添加到 cellValue
并使用 item
或rawObject
对象。在大多数情况下,选择 item
参数并将列名作为 属性 将是免费 jqGrid 的最佳选择。
此外还应该定义CSS规则,它使用类并设置color
或background-color
,例如如下
.new_color {
background-color: green;
}
.sent_color {
background-color: yellow;
}
.assigned_color {
background-color: red;
}
.new_color, .sent_color, .assigned_color {
background-image: none;
}