您将如何为特定的 jqgrid 单元格文本着色
how would you colorize specific jqgrid cell text
我有一个存储过程 (sql server 2008) returns (4) 个不同字段的状态到 jqgrid 的单个列中,例如 Good/Bad/Good/Bad。我想要做的是将 Good 文本显示为绿色,将 Bad 文本显示为红色。我可以将它们分成不同的列,然后设置每个列的颜色,但我更喜欢只有一个列。我可以在存储过程中设置这个值,或者用 html 将其包装在 class 中来执行此操作吗?
这可能吗?
谢谢。
不确定自从我上次接触 JQGrid 以来它发生了多少变化,但您可以这样做:
jQuery("#list").jqGrid({
url: 'yoururl',
datatype: 'xml',
mtype: 'GET',
colNames:['id','category'],
....
gridComplete: function fireup(){
jQuery('#list')
.setCell('d1','kategorie', '', { 'font-weight': 'bold', background: '#ddf' })
.setCell('d1','name', '', { 'font-weight': 'bold', background: '#ddf' })
您可以使用 custom formatter 来执行以下操作。
{ name: 'status', index: 'status', formatter:colorFormatter}
colorFormatter 函数如下所示。
function colorFormatter (cellvalue, options, rowObject)
{
var data = cellvalue.split('/');
var length = data.length;
var new_format_value='', text, color, separator='/';
for(var i=0; i<length; i++) {
var text=data[i];
text=='Good'?
color='style="color:green;"':
color='style="color:red;"';
if(i==length-1) separator='';
new_format_value+='<span '+color+'>'+text+'</span>'+separator;
}
return new_format_value
}
JS Fiddle link: http://jsfiddle.net/yNw3C/12221/
我有一个存储过程 (sql server 2008) returns (4) 个不同字段的状态到 jqgrid 的单个列中,例如 Good/Bad/Good/Bad。我想要做的是将 Good 文本显示为绿色,将 Bad 文本显示为红色。我可以将它们分成不同的列,然后设置每个列的颜色,但我更喜欢只有一个列。我可以在存储过程中设置这个值,或者用 html 将其包装在 class 中来执行此操作吗?
这可能吗?
谢谢。
不确定自从我上次接触 JQGrid 以来它发生了多少变化,但您可以这样做:
jQuery("#list").jqGrid({
url: 'yoururl',
datatype: 'xml',
mtype: 'GET',
colNames:['id','category'],
....
gridComplete: function fireup(){
jQuery('#list')
.setCell('d1','kategorie', '', { 'font-weight': 'bold', background: '#ddf' })
.setCell('d1','name', '', { 'font-weight': 'bold', background: '#ddf' })
您可以使用 custom formatter 来执行以下操作。
{ name: 'status', index: 'status', formatter:colorFormatter}
colorFormatter 函数如下所示。
function colorFormatter (cellvalue, options, rowObject)
{
var data = cellvalue.split('/');
var length = data.length;
var new_format_value='', text, color, separator='/';
for(var i=0; i<length; i++) {
var text=data[i];
text=='Good'?
color='style="color:green;"':
color='style="color:red;"';
if(i==length-1) separator='';
new_format_value+='<span '+color+'>'+text+'</span>'+separator;
}
return new_format_value
}
JS Fiddle link: http://jsfiddle.net/yNw3C/12221/