【问题标题】:jqGrid Group summary not showing total sum with pagingjqGrid 组摘要未显示分页的总和
【发布时间】:2012-06-13 23:56:00
【问题描述】:

这是我在这个论坛的第一篇文章,所以请耐心等待。

我需要设置摘要以显示网格中所有行的总和,甚至是其他页面内的行 - 值的绝对总和。

我正在寻找它,我看到很多人都有这个问题,所以我认为这不是我的代码的问题。听起来更像是分组机制本身的设计,不然不知道。

但是,需要明确的是,我认为我需要调用服务器端以从那里获取总和,这可能吗?如果是这样,我应该如何使用json?

我在考虑使用格式化程序选项,但它是逐行触发的,我不认为这是这个想法,因为总和将在第一次调用中得到完整。

有什么建议吗?

谢谢!!!

【问题讨论】:

    标签: asp.net json jqgrid paging grouping


    【解决方案1】:

    您可以定义一个自定义summaryType 函数来显示您的总和。根据documentationsummaryType

    选项可以定义为函数。如果已定义,我们将向它传递三个参数——当前值、名称和记录对象。该函数应该返回值。请注意,此值将再次用于组值,直到它发生变化。

    例如,您可以在页面加载时检索totalSumRecord - 直接从格式化程序进行 AJAX 调用是个坏主意 - 然后在格式化程序中显示适当的值:

    function myCustomSummary(val, name, record) {
        return totalSumRecord[name];
    }
    
    jQuery("#grid").jqGrid({ 
      ...
      colModel : [
         {..},
         {name:'myColumn',
          index:'myColumn', 
          width:80, 
          align:"right", 
          sorttype:'number',
          formatter:'number',
          summaryType:myCustomSummary},
         ...
      ],
      ...
    });
    


    更新

    在 jqGrid 4.4 中存在一个错误,其中函数不允许作为汇总类型。如果这影响到您,here 是解决方法。

    【讨论】:

    • 是的,我已经尝试过了,但是函数调用只会抛出当前页面中的项目,而不是其他页面中的项目。
    • 这就是为什么我正在考虑在服务器端进行总和,但是当我将项目分组时,它应该会影响它自己的页面数量,因为当然,有更少的行显示。
    • 我相信我将不得不放弃使用 jqgrid 进行分组,并在服务器端使用 Link 进行自己的分组。
    • 是的,但是自定义摘要功能允许您显示任何内容。因此,当您的页面加载时,您可以向其中写入一个包含总摘要计数的对象(按组或您需要的任何内容)。然后让您的自定义函数显示来自该对象的计数,而不是来自网格的数据。这有意义吗?
    • 我明白你想说的:) 问题是页面的数量没有改变,因为我当然不是在做服务器分组,它只会在我刷新时改变带有 JSON 信息的网格,然后网格将知道新的数量。无法通过客户端执行此操作。分组和更改记录数不是 jqGrid 所做的事情:) 无论如何谢谢 :)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-04-15
    • 2015-09-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-02-05
    相关资源
    最近更新 更多