2015-03-31 35 views
1

我有一个工作的jqgrid表,它在标题上有摘要视图,就像我在这个plunkr中实现的示例http://plnkr.co/edit/wjIlaVMsa9vusmfhgfL1?p=preview把具体的数据放在jqgrid摘要视图标题中

摘要视图标题正常工作,显示的数据来自jqgrid中的(总和)函数。但是,我不想让jqgrid自己计算摘要,而是希望在摘要行(仍然是每列,我不想要colspan摘要标头)中显示自己的数据。最简单的例子是:假设列中的数据都是文本。我仍然想要分组&摘要视图标题&在摘要标题上显示每列数据,但我不想让jqgrid为我计算摘要(因为它是一个文本)。我想显示自己的摘要数据,它也来自我的数据json。

我不使用

summaryTpl: '<b>{0}<b>' 

会为我工作,因为我要显示的数据来自我的JSON数据认为。

这可能吗? 如果我的解释不够清楚,请告诉我。谢谢!

回答

2

您发布的演示使用jqGrid 4.6版本。您没有太多的可能性在案件中设置自定义汇总值。您可以在需要放置自定义汇总值的列中使用自定义格式器。我在the old answer中描述了该方法。这真的很棘手。

另外我可以建议你使用free jqGrid 4.8(见readmewiki)。免费jqGrid支持summaryType定义为函数。为了展示它的工作原理,我为你创建了一些JSFiddle示例。 The first one包含您的原始演示。 The second one包含

summaryType: function (v, cn, record) { 
    var fieldData = parseInt(record[cn], 10); 
    return v === "" ? fieldData : fieldData + v; 
} 

而不是summaryType: "sum"。汇总栏中的结果将接近原始结果,但我使用的是parseInt(record[cn], 10)而不是parseFloat(record[cn])。所以我只得到输入数字的整数部分,结果也是整数。

The next demo包含静态变量

var mySummary = { 
    ALFKI: 12, 
    ANATR: 23, 
    AROUT: 34, 
    BERGS: 45, 
    BLAUS: 56 
}; 

,并且看起来

summaryType: function (v, cn, record) { 
    return mySummary[record.CustomerID]; 
} 

在每个组汇总结果将基于mySummary地图上显示的方式summaryType。我提醒你,这些值将由你在列中定义的格式化器格式化。因为您在列Freight中使用formatter: 'number',所以结果应该是数字或可以转换为数字的字符串。

The last demo使用改性JSON数据

{ 
    "userdata": { 
     "ALFKI": 12.34, 
     "ANATR": 23.45, 
     "AROUT": 34.56, 
     "BERGS": 45.67, 
     "BLAUS": 56.78 
    }, 
    "rows":[ 
     .... 
    ] 
} 

summaryType予限定成

summaryType: function (v, cn, record) { 
    var userData = $(this).jqGrid("getGridParam", "userData"); 
    return userData[record.CustomerID]; 
} 

其结果在分组摘要来自服务器的userdata部分显示的值。我认为这是你想要的。

+0

嗨奥列格,感谢您的回复! jqGrid 4.8(http://www.trirand.com/blog/?p=1467)支持jqGrid 4.8中提到的技术吗?我只允许使用jqGrid而不是其他分支库.. – blenzcoffee 2015-04-01 00:08:19

+0

@blenzcoffee:不客气!你应该自己测试一下,不管它是否支持Guriddo jqGrid JavaScript 4.8 ...没有更多的jqGrid。你可以在[Grriddo论坛](http://guriddo.net/?page_id=4)上提问。 – Oleg 2015-04-01 00:17:25

+0

没有更多jqGrid?你的意思是最后一个版本是jqGrid 4.8吗? (我会检查论坛)。我正在尝试你的答案。当我设置jqGrid选项时,我已经有了我的用户数据,所以我正在使用静态变量方式。我会看看它是如何发展。谢谢! – blenzcoffee 2015-04-01 00:22:35