jQuery:表组页脚/标题中的分组和总和?

时间:2012-07-17 07:14:41

标签: jquery

我正在寻找一个jQuery解决方案,它可以按列进行排序和分组;然后,在页脚部分,应该可以显示上面所有值的总和。

示例:我有三列:国家/地区,日期和销售:

US     20120714       50
DE     20120714       40
BR     20120714       30
US     20120715       60
DE     20120715       60
BR     20120715       20

如果按国家排序:

BR     20120714       30
BR     20120715       20
                      50
DE     20120714       40
DE     20120715       60
                     100
US     20120714       50
US     20120715       60
                     110

如果按日期排序:

BR     20120714       30
DE     20120714       40
US     20120714       50
                     120
BR     20120715       20
DE     20120715       60
US     20120715       60
                     140

依旧......

是否有可用的插件?

3 个答案:

答案 0 :(得分:4)

正如已经建议的那样,Datatables是一个很好用且易于使用的JQuery插件,可以满足您的需求。它支持开箱即用,也可以进行分组。见example 您还可以修改页脚以显示列的总和,例如此example

但是,您也可以使用fnDrawCallback功能。每次绘制表格时都会调用它,并为您提供修改它应该如何绘制的可能性。

实施例:

"fnDrawCallback": function (oSettings) {
    // Get all rows of your table
    var nTrs = $tableElement.find('tbody tr');
    // Enumerate all rows
    var sum = 0;
    for (var i = 0; i < nTrs.length; i++) {
         var iDisplayIndex = oSettings._iDisplayStart + i;
         var dataIndex = oSettings.aiDisplay[iDisplayIndex];
         sum += oSettings.aoData[dataIndex]._aData.{your item};
    }
    // Insert sum at the end
    $tableElement.find(' tbody tr:last').after('<p>'+sum+'</p>');

在此示例中,变量$tableElement包含数据表实例的JQuery对象。

答案 1 :(得分:1)

很明显你需要尝试serach,它非常容易使用谷歌,在这里你需要自己尝试然后你需要问你关于你的“问题”的问题。

在这里你必须学习如何钓鱼而不是给你一条免费的鱼:)

你问题的另一面是非常广泛的,我的意思是很多会给你很多插件,一切都是正确的,但你会选择“你的”答案为“你”想要,而不是因为答案是真的正确或最好

这就是为什么你会得到投票的原因。 (正如我所想或所见)

无论如何,你可以看看你是否想要这样的插件:http://datatables.net/release-datatables/examples/plug-ins/sorting_sType.html

或其他方式:http://datatables.net/ 也许你需要编码(求和)。

这里有很多插件:http://www.jquery4u.com/plugins/30-amazing-jquery-tables/#.UAUUD_XU6Iw

自己探索他们我希望你会得到一些有用的东西,我用非常简单的谷歌搜索和愚蠢的话语得到这些链接:)

答案 2 :(得分:1)

我宁愿不用沉重的逻辑来惹恼客户端,它会口吃而且速度慢。

只需执行所有排序/分组/计数服务器,并为您的客户提供已处理并准备好显示的所有数据。

为此你只需要一个简单的ajax调用和一堆参数:不需要在不需要的地方做魔术。