Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/87.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
Php 根据trirand jqgrid的值为行着色_Php_Jquery_Jqgrid - Fatal编程技术网

Php 根据trirand jqgrid的值为行着色

Php 根据trirand jqgrid的值为行着色,php,jquery,jqgrid,Php,Jquery,Jqgrid,我需要根据存储在数据库中的值为行的背景上色。我用的是TriRand jqgrid。我需要从POLineStatus得到这个值,如果它等于2,我需要把背景涂成红色。我在css文件中设置了一个类,它将获得正确的背景颜色属性。不幸的是,我不知道如何让它在每列的基础上做到这一点 $mycellattr = <<<CELLATTR function (rowid, value, rawObject, colModel, arraydata){ if(value=="Rejec

我需要根据存储在数据库中的值为行的背景上色。我用的是TriRand jqgrid。我需要从POLineStatus得到这个值,如果它等于2,我需要把背景涂成红色。我在css文件中设置了一个类,它将获得正确的背景颜色属性。不幸的是,我不知道如何让它在每列的基础上做到这一点

$mycellattr =  <<<CELLATTR
function (rowid, value, rawObject, colModel, arraydata){ 
    if(value=="Rejected"){
    return {class:'colorClass'};
   }
}
CELLATTR;


$grid->setGridEvent('rowattr', $mycellattr);
$mycellatr=
毛利率:
发件人:
致:

-------奥列格斯修正案:

$mycellattr =  <<<CELLATTR
function (rd,cur,id){ 
    if(rd.POLineStatusID=="2"){
    return {"class":"colorClass"};
   }
}
CELLATTR;


$grid->setGridEvent('rowattr', $mycellattr);

$mycellatr=我不是一名PHP开发人员,但您的代码中绝对错误的是
rowattr
的参数。它具有树参数
rd
cur
id
。在大多数情况下,只需要第一个参数。查找代码示例

或者,您可以使用
jqGridRowAttr
jQuery事件。有关代码示例,请参见。在你的情况下是这样的

$("#list").bind("jqGridRowAttr", function (e, rd) {
    if (rd.POLineStatus === "Rejected") { // test the value of POLineStatus column
        return {"class": "colorClass"};
    }
});
使用
{class:“colorClass”}
而不是
{class:“colorClass”}
与旧版本的Internet Explorer兼容非常重要。在创建网格之前,设置绑定非常重要


演示“jqGridRowAttr”的用法。

Oleg,感谢您花时间回复。我唯一的问题是,我没有像你那样设置网格。这似乎是TriRand设置的专有方式。例如,我将向您展示我的代码。我编辑了我原来的帖子,又把它放在了上面。@Waragi:不客气!您的问题是使用了
if(value==“Rejected”)
其中
value
rowattr
的第二个参数。这是错误的。我写过两种方法来解决这个问题:一种是修复
rowattr
的代码,另一种是使用
$(“#detail”).bind(“jqGridRowAttr”,…)。对于第二种方法,您需要了解如何将JavaScript代码与PHP代码混合(请参阅)。您最后的代码更好,但仍然是错误的。您在
$mycellatr
@Waragi中使用
函数(e,rd)
而不是
函数(rd)
:类
colorClass
的CSS规则定义可能是另一个错误点。如果您在修复
$mycellatr
后没有正确的结果,您应该验证(并发布)CSS规则。您是圣人,已经五个多小时了-它正在工作!你说得对,我需要了解如何更好地混合PHP和javascript。再次感谢你
$mycellattr =  <<<CELLATTR
function (rd,cur,id){ 
    if(rd.POLineStatusID=="2"){
    return {"class":"colorClass"};
   }
}
CELLATTR;


$grid->setGridEvent('rowattr', $mycellattr);
$("#list").bind("jqGridRowAttr", function (e, rd) {
    if (rd.POLineStatus === "Rejected") { // test the value of POLineStatus column
        return {"class": "colorClass"};
    }
});