2009-04-20 118 views
6

是否有可能在jqGrid(jQuery网格http://www.trirand.com/blog/)具有自定义单元格文字颜色,例如在价格栏中,如果价格> 100 $,则需要​​红色,如果价格为绿色,则需要绿色< 50 $其他灰色?jqGrid与自定义单元格颜色

更一般做

  1. 的jqGrid提供了钩子改变网格cellview,例如当价格栏的单元格被创建或修改时,我可以注册回调。

  2. 或者是否有可能具有单独的模型和视图(客户端) 从服务器我可以发送两个数据的每一行,即如何显示和显示什么

编辑:所以在这里是表示取样格式化器,其颜色的小区是基于值的示例

function infractionInFormatter(el, cellval, opts) 
{ 
    $(el).html(cellval).css('color',infraction_color_map[cellval]); 
} 

colModel :[ 
    ... 
    {name:'date', index:'date', width:120, date:true}, 
    {name:'inf_out', index:'inf_out', width:60, formatter:infractionInFormatter,}, 
    ... 
], 

回答

8

是的,你可以做到这一点。写一个custom formatter。这只是您在colModel中传递引用的函数。你得到了函数中最后的单元格选择器的引用,所以你可以用一个格式化程序完成jQuery的任何工作。包括改变颜色/样式。

-1

如果单元格有xxx值,我会设置一个红色背景颜色,如果值是yyy,我会设置一个绿色背景。

我已经写了这个代码:

..... 
colModel:[ 
    {name:'id',index:'id', width:15,hidden:true, align:"center"}, 
    {name:'title',index:'title', width:150, align:"center"}, 
    {name:'start',index:'start', width:350, align:"center", sorttype:"date"}, 
    {name:'fine',index:'fine', width:350, align:"center", sorttype:"date"}, 
    {name:'completed',index:'completed', width:120, align:"center",formatter:infractionInFormatter},   
    ], 
..... 

而且这个功能就像你的例子:

function infractionInFormatter(el, cellval, opts) 
     { 
      ..... 
     } 

我怎么也得设置呢?

非常感谢。

+1

这不是一个答案的。去[这里](http://stackoverflow.com/questions/ask)如果你想问一个问题。 – FastTrack 2012-11-20 14:31:30

2

您还可以指定在colModel类:

colModel: [ 
      { 
      name:'field_x', 
      index:'field_x', 
      align: 'left', 
      width: 35, 
      classes: 'cvteste' 
      }, 
      ..... 
      ]