6

在 jqGrid(jquery 网格http://www.trirand.com/blog/)中是否有可能具有自定义单元格文本颜色,例如在价格列中,如果价格 > 100 美元,我想要红色,如果价格 < 50 美元,我想要绿色,否则为灰色?

更一般地做

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

  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,},
    ...
],
4

3 回答 3

8

是的,你可以这么做。编写自定义格式化程序。这只是您在 colModel 中传递引用的函数。您会在函数中获得对最终单元格选择器的引用,因此您可以使用 jQuery 执行的任何操作都可以在格式化程序中执行。包括更改颜色/样式。

于 2009-04-20T15:27:38.240 回答
2

您还可以在 colModel 中指定类:

colModel: [
           {
            name:'field_x', 
            index:'field_x',  
            align: 'left',  
            width:  35, 
            classes: 'cvteste'
           },
          .....
          ]
于 2010-09-24T10:44:42.107 回答
-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)
        {
            .....
        }

我必须如何设置它?

非常感谢。

于 2010-07-08T09:56:35.980 回答