我正在使用Jqgrid。我想根据列值更改行颜色。我可以根据此列值更改行的类。但我需要的是使用从服务器获取的颜色值更改字体颜色。如何做到这一点?
答案 0 :(得分:1)
您可以使用列custom formatter来完成此操作。
格式化程序将是您使用以下格式编写的javascript函数:
function myformatter ( cellvalue, options, rowObject )
{
// format the cellvalue to new format
return new_formated_cellvalue;
}
网格将路由这些值:
因此,在自定义格式化程序中,您可以获取单元格值并对其应用类或内联字体样式,如下所示:
function myformatter ( cellvalue, options, rowObject )
{
if (cellvalue == "red")
return '<font color="red">' + cellvalue + '</font>';//or use classes
else
return '<font color="blue">' + cellvalue + '</font>';//or use classes
}
然后在您的列定义中,您只需指定将使用此格式化程序的列,就像这样(添加到需要字体颜色的任何列):
colModel: [
...
{name:'price', index:'price', width:60, align:"center", editable: true, formatter:myformatter},
...
]
答案 1 :(得分:1)
或者你也可以试试这个,在loadComplete中,得到像这样的jqgrid的所有行ID
var allRowsOnCurrentPage = $('#grid').jqGrid('getDataIDs');
并且假设您在jqgrid中有名称和公司列,并且有两行。对于一行数据是这样的
姓名:xxx公司:yyy
并且对于第二行,您有这样的数据
姓名:aaa公司:bbb
所以你在for循环中得到了Name值
for(int i=1;i<=allRowsOnCurrentPage.length;i++)
{
var Name=$('#grid').jqGrid('getCell',i,'Name');
if(Name="aaa")
{
$('#grid').jqGrid('setCell',i,"Name","",{'background-color':'yellow');
}
}
代码未经过测试,但应该有效。
答案 2 :(得分:0)
在colModel中使用cellattr属性
cellattr: function (rowId, value, rowObject, colModel, arrData){
return 'style=background-color:black;'; }