jqGrid具有自定义单元格颜色

时间:2009-04-20 13:39:42

标签: jquery grid jqgrid

是否可以在jqGrid(jquery grid http://www.trirand.com/blog/)中使用自定义单元格文本颜色,例如在价格栏中我想要红色,如果价格> 100美元和绿色,如果价格< 50 $其他灰色?

更一般地做

  1. jqGrid提供了更改网格单元格视图的挂钩,例如我可以在创建或修改价格列的单元格时注册回调。

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

  3. 编辑:所以这里有一个示例显示样本格式化程序,它根据值

    为单元格着色
    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,},
        ...
    ],
    

3 个答案:

答案 0 :(得分:8)

是的,你可以这样做。写一个custom formatter。这只是一个在colModel中传递引用的函数。您可以在函数中获得对最终单元格选择器的引用,因此您可以在格式化程序中使用jQuery执行任何操作。包括改变颜色/风格。

答案 1 :(得分:2)

您还可以在colModel中指定类:

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

答案 2 :(得分:-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)
        {
            .....
        }

我如何设置它?

非常感谢。