【问题标题】:how can I change the color of footer data of jqgrid?如何更改 jqgrid 页脚数据的颜色?
【发布时间】:2013-10-08 06:10:07
【问题描述】:

我有一个 jqgrid,在页脚显示总值。我想将负值的颜色转换为红色。我该怎么做?

【问题讨论】:

  • 您指的是哪个页脚和摘要?您是否使用仅使用footerrow: true 的分组?你如何填充页脚拖曳?您是使用userDataOnFooter: true 选项并在服务器上计算摘要,还是直接在输入中使用userData?可能您明确使用footerData 并对getCol 方法进行一些计算?无论如何,你应该更清楚地描述你所做的事情。
  • 是的,我使用 footerrow: true 和 $("#gridId").jqGrid("footerData","set",dataArray);或 $("#gridId").footerData("set",dataArray,true);将我的 dataArray 设置为页脚。然后我想在页脚数据中用红色为负值着色。

标签: jqgrid jqgrid-formatter


【解决方案1】:

如果你使用false作为footerData的最后一个参数,jqGrid不会格式化数据。所以你可以使用像<span style="color:red">...</span>这样的HTML片段来改变显示数据的颜色。或者,您可以使用像 ui-state-error 这样的 jQuery CSS 框架类来突出显示文本(参见 the answer)。

如果您仍需要格式化汇总值,您可以使用$.fmatter.util.NumberFormat(请参阅the answerthis one)或使用formatter 方法,如the demo 中的方法

哪个使用

footerrow: true,
loadComplete: function () {
    var $self = $(this),
        sum = $self.jqGrid("getCol", "amount", false, "sum"),
        i,
        iCol = $("#" + $.jgrid.jqID(this.id) + "_" + "amount")[0].cellIndex, // get index of "amount" column
        sumFormatted = this.formatter("", sum, iCol);

    $self.jqGrid(
        "footerData",
        "set",
        {
            invdate: "Total:",
            amount: sum < 0 ? "<span style='color:red'>" + sumFormatted + "</span>": sum
        },
        false
    );
}

【讨论】:

  • 感谢您的回答。但是我已经有了包含所有列总数的数据数组。我想要的是,颜色减去使用这个 $("#gridId").jqGrid("footerData","set",dataArray,false); 的总值。有没有办法做到这一点?
  • @DilanG:不客气! dataArray 中的数据可以是HTML 片段。因此,您只需在dataArray 的某些属性的值中包含颜色格式。我在我的答案中发布的演示中做了同样的事情。
  • 很抱歉打扰你了。但我没有得到你。在这个演示中,你计算函数中的总和。但是我已经计算了数组中的总数。数组结构是, dataArray={"column1":total1,"colomn2":total2,....} 明智的......那我该怎么做呢?你能给我看看吗?
  • @DilanG:您应该在需要红色的列中修改dataArraydataArray={"column1":total1 ? "&lt;span style='color:red'&gt;" + total1 + "&lt;/span&gt;": total1,"colomn2":total2,....}
猜你喜欢
  • 1970-01-01
  • 2011-06-23
  • 1970-01-01
  • 1970-01-01
  • 2016-01-11
  • 1970-01-01
  • 2013-01-04
  • 2017-06-23
  • 1970-01-01
相关资源
最近更新 更多