使用自定义格式化器为页脚行

时间:2016-04-13 12:40:38

标签: jqgrid

我想在页脚行中添加一些数据,但该列的预定义格式化程序无法正确格式化。例如:

ColumnModel

{
  'name': 'GDP',
  'label': 'GDP',
  'formatter': 'currency',
  'formatOptions': {
    'decimalPlaces': 2,
    'defaultValue': '',
    "thousandsSeparator": ',',
    'prefix': '$'
  },

}

但页脚的userdata与{"GDP":"Total- 1233"}类似,并显示该页脚单元格的空白值。我的猜测是它需要数值数据。有没有办法为此列页脚分配自定义格式化程序?如果有,自定义格式化程序是否可以为currency中的数字部分调用预定义的"Total- 1233"格式化程序?

1 个答案:

答案 0 :(得分:1)

在这种情况下,您需要带有footerrow和userDataOnFooter选项的加载列表,如下所示:

footerrow : true,    
userDataOnFooter : false, 

您将userDataOnFooter选项标记为上面的'false',因此您应该在'loadComlpete','gridComplete'或其他任何依赖于您的代码逻辑的自定义函数中手动加载userdata。你可以编写如下代码来手动将userdata加载到页脚行,这里我使用'loadComplete'作为例子:

loadComplete:function(){
    var uData = jQuery("#tableId").jqGrid('getGridParam', 'userData' );

    // Notice that be sure pass false to the last parameter of function,
    // or jqGrid will use formatter defined in colModel option
    // which in your case is 'currency' for GDP column.
    jQuery("#tableId").jqGrid("footerData", "set", uData, false);
}  

此外,获取userdata的方法在旧版本和jqGrid的新版本之间是不同的。我在下面截了你的截图:

enter image description here

希望这对你有用。 :)