Jqgrid中的计算列

时间:2017-11-25 11:24:42

标签: jquery jqgrid

我有以下网格 -

https://jsfiddle.net/ht94wbtr/1/

请看下面的图片

enter image description here

在这个网格中,我想要一个计算列'Total Red Cells',如下面的示例图像

enter image description here

在Oleg先生的帮助下,我得到了以下代码,可以用于Footer

        var errorInfo = {id: "Errors:", color_name: 0, character_name: 0};
    var i, item;
    for (i = 0; i < mydata.length; i++) {
        item = mydata[i];

        if ($.inArray(item.color_name, hilightcolorcell) < 0) {
            errorInfo.color_name++;
        }
        if ($.inArray(item.character_name, hilightcahractercell) < 0) {
            errorInfo.character_name++;
        }
    }

        footerrow: true,
        userDataOnFooter: true,
        userData: errorInfo //{ id: "Errors:", color_name: 2, character_name: 2 }

我想知道如何遍历color_name和character_name列,并在计算列“Total Red Cells”中显示总错误计数,如示例图像中所示。请帮忙。

1 个答案:

答案 0 :(得分:2)

如果我正确理解您的需求,那么解决方案将非常简单。首先,您需要定义要保留的列/显示“总红细胞”信息。我们这列的名称为redtotal。然后,您应该使用相应的值扩展errorInfo以保留redtotal属性。相应的代码可能类似于errorInfo

var errorInfo = {id: "Errors:", redtotal: 0, color_name: 0, character_name: 0};
var i, item;
for (i = 0; i < mydata.length; i++) {
    item = mydata[i];

    if ($.inArray(item.color_name, hilightcolorcell) < 0) {
        errorInfo.color_name++;
        errorInfo.redtotal++;
    }
    if ($.inArray(item.character_name, hilightcahractercell) < 0) {
        errorInfo.character_name++;
        errorInfo.redtotal++;
    }
}

您会在https://jsfiddle.net/OlegKi/ht94wbtr/4/

上看到结果