我想在页脚行中添加一些数据,但该列的预定义格式化程序无法正确格式化。例如:
ColumnModel
{
'name': 'GDP',
'label': 'GDP',
'formatter': 'currency',
'formatOptions': {
'decimalPlaces': 2,
'defaultValue': '',
"thousandsSeparator": ',',
'prefix': '$'
},
}
但页脚的userdata与{"GDP":"Total- 1233"}
类似,并显示该页脚单元格的空白值。我的猜测是它需要数值数据。有没有办法为此列页脚分配自定义格式化程序?如果有,自定义格式化程序是否可以为currency
中的数字部分调用预定义的"Total- 1233"
格式化程序?
答案 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的新版本之间是不同的。我在下面截了你的截图:
希望这对你有用。 :)