我想根据单元格的内容设置单元格的背景颜色。JQGrid:如何根据内容设置单元格样式
我的第一个问题:有没有一种方法可以从xml数据中设置单元格的背景颜色?
如果不是,这是我网格的定义:
$("#grid_sites").jqGrid({
url:"getgridxmlsites.php?detailid=" + $('#hdnStudyDetailId').val(),
datatype: "local",
height: 160,
width: 832,
shrinkToFit: true,
caption:"",
colNames :["Site","Name","PI","Location","Phone","Status"],
colModel :[
{name:"sitenumber", index:"sitenumber", width:50, align:"right"},
{name:"name", index:"name", width:120},
{name:"location", index:"location", width:100},
{name:"phone", index:"phone", width:100},
{name:"status", index:"status", width:70}
],
pager:"pager_sites",
scroll: 1,
viewrecords:true,
sortable:true,
sortname: "sitenumber",
autowidth: true,
pgbuttons: false,
loadonce: true,
gridview: true
});
我想改变基于其内容的状态单元格的背景颜色。 我知道我应该在状态栏上使用一个格式化程序,但是我不确定代码只是改变那个单元格的背景颜色。
{name:"status", index:"status", width:70, formatter: statusFormatter}
function statusFormatter(cellvalue, options, rowObject)
{
What exactly would go here for something like this:
if (cellValue == 'Pending') change the cell's background color to yellow
else if (cellValue == 'Approved') change the cells's background color to green;
}
谢谢!
非常感谢您的回复。我可能会使用loadComplete事件并遍历所有行来设置单元格属性。 –
@David Davis:通过所有行在'loadComplete'内循环的方式总是缓慢,因为cellattr或自定义formater与'gridview:true'参数一起使用,您已经使用它。如果因为任何其他原因决定使用循环,请查看[答案](http://stackoverflow.com/questions/5664587/jqgrid-load-large-data-set-without-pagination/5690583#5690583 ),它描述了相对有效的方法来实现这一点。 – Oleg
再次感谢。我在使用cellattr时再次详细阅读了您的文章,并尝试过并且更喜欢它。现在我知道根据内容格式化单个单元格的正确方法。再次感谢您的帮助。 –