Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/github/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
jqGrid自定义格式化程序集单元格无法与options.rowId一起使用_Jqgrid_Cell_Formatter - Fatal编程技术网

jqGrid自定义格式化程序集单元格无法与options.rowId一起使用

jqGrid自定义格式化程序集单元格无法与options.rowId一起使用,jqgrid,cell,formatter,Jqgrid,Cell,Formatter,我浏览了所有的帖子,最后让setCell使用硬编码的值,但没有使用options.rowId function StatusFormatter(cellvalue, options, rowObject) { if (cellvalue == 'C'){ jQuery("#list").setCell(options.rowId , 'SOORDLINE', '', { color: 'red' }); jQuery("#list").setCell("

我浏览了所有的帖子,最后让setCell使用硬编码的值,但没有使用options.rowId

 function StatusFormatter(cellvalue, options, rowObject) {
    if (cellvalue == 'C'){
        jQuery("#list").setCell(options.rowId , 'SOORDLINE', '', { color: 'red' });
        jQuery("#list").setCell("[2.000]", 'SOORDLINE', '', { color: 'red' });
        jQuery("#list").setCell('[2.000]', 'SOREQDATE', '', { color: 'red' });
        jQuery("#list").setCell(options.rowId, 'SOPRICE', '', { color: 'red' });
    }
    return cellvalue;
    };  
第一行和最后一行不起作用,但是带有硬编码rowId的2行起作用。我检查了option.rowId中返回的内容,它们与硬编码的值相同(当然只是根据行的不同而不同)。我缺少什么?请帮助。我看不到行或值之间有任何差异

编辑-

我尝试了答案,它似乎是我所需要的

      { name: 'SOORDLINE', index: 'SOORDLINE', width: 25, search: false ,celattr: function () { return ' style="color: red"'; }
},
在我进入逻辑之前,至少让它们都变红,这对我没有任何帮助。

抱歉,但您使用的方式完全错误。自定义格式设置程序的目标是提供HTML片段来填充相应列中单元格的内容。因此,将在id等于的行之前调用
StatusFormatter
选项。将创建rowId
。此外,出于性能目的,通常使用
gridview:true
。在这种情况下,网格的整个内容(网格的整个主体)将首先构造为字符串,然后在一次操作中将其放置在网格体中。这将提高性能,因为放置任何元素后,web浏览器必须重新计算页面上所有其他元素的位置

如果要在
SOORDLINE
单元格上设置文本颜色,则应改为
cellatr

celattr: function () { return ' style="color: red"'; }
celattr
也可以以
celattr:function(rowId,cellValue,rawObject){…}
的形式使用,您可以测试表示任何列的值的
rawObject
的属性,并基于单元格值返回单元格样式


或者,您可以枚举
loadComplete
中的行,并在
元素上设置样式,而不是为每一行设置相同的样式。请参见作为示例。

注意:我确实做到了这一点,您的示例只在cellattr中的“l”上,而不是在2上,我查看了示例中的源代码并看到了差异。Thi当“分组”处于启用状态时,s的解决方案似乎不起作用。当您进行排序时,作为本例中颜色的属性将消失。我通过关闭loadonce解决了颜色问题。我想当行被洗牌时,属性不会结转,celattr也不会重新实现。只是一个猜测。@D-s:问题是您包含的信息太少问题文本中的信息。您应该始终包括jqGrid的定义。至少包括完整的
colModel
以及
datatype
loadonce
参数的值。如果使用自定义格式化程序,您应该始终包括您使用的测试JSON或XML数据。有了这些信息,我可以告诉您如何在您的案例中使用
cellatr
和自定义
formatter
。它将与
loadonce:true