【问题标题】:JQGrid: Loading data into the footer rowJQGrid:将数据加载到页脚行
【发布时间】:2011-02-18 16:48:23
【问题描述】:

有没有将数据加载到页脚的示例?我找不到任何东西,或者我在工作中被阻止了。

提前谢谢...

【问题讨论】:

  • 页脚是什么意思?可以给我们截图吗?

标签: jquery jqgrid


【解决方案1】:

看演示http://trirand.com/blog/jqgrid/jqgrid.html

然后在左侧树中选择“New in Version 3.5”,然后选择“Summary Footer Row”。

在示例中设置了 jqGrid 的 footerrow : true, userDataOnFooter : true 选项。然后服务器将userdata 块添加到发送回jqGrid 的数据中。您可以在http://www.trirand.com/jqgridwiki/doku.php?id=wiki:retrieving_data 中阅读有关userdata 的信息。如果userdata block hat 属性对应jqGrid的列名,则数据将在页脚行中看到。

如果您需要更多信息,您应该写出您在 jqGrid 中使用哪种数据(JSON、XML、xmlstring、jsonstring、本地等)以及您使用哪种服务器(PHP、ASP.NET MVC、WCF以此类推)。

更新:如果您使用标准 json 映射您的数据(没有 jqGrid 的 jsonReader 选项)从服务器看起来像

{ 
  total: "xxx", 
  page: "yyy", 
  records: "zzz",
  rows : [
    {id:"1", cell:["cell11", "cell12", "cell13"]},
    {id:"2", cell:["cell21", "cell22", "cell23"]},
      ...
  ]
}

所以数据没有来自 colModel 的列名称。例如,如果您在 colModel 中有一列 {name:'price', ...} 并希望在 jqGid 的最后一行显示总价,您应该在 jqGrid 选项中定义 footerrow: true, userDataOnFooter: true 并且您的服务器应该产生类似的数据

{ 
  total: "xxx", 
  page: "yyy", 
  records: "zzz",
  rows : [
    {id:"1", cell:["cell11", "cell12", "cell13"]},
    {id:"2", cell:["cell21", "cell22", "cell23"]},
      ...
  ],
  userdata: {price:1240.00} 
}

如果你使用另一个 jsonReader 所有 stat 不变。您唯一可以定义的是将“userdata”名称更改为另一个名称,但值必须是一个对象,其字段名称与您在 colModel 中定义的一样。只有该字段的值会在 jqGrid 的最后一行显示为粗体。

【讨论】:

  • @Oleg:Oleg 的另一个很好的答案,不过还有一个问题,您如何像在上面标记的演示中那样在页脚行中获得“总计”标签?
  • 为了回答我之前的问题,我刚刚回到了用户数据中,并在前面字段的列名中添加了一个值“Totals”。
【解决方案2】:

上面的答案很有帮助。无论如何,这是我在 MVC.Net 中的做法:

首先这个属性在网格定义上:

footerrow:是的, userDataOnFooter: true

在 HttpPost 上的操作结果中:

        [HttpPost]
        public ActionResult GetNewMembersByDate(string date1, string date2)
        {
            List<uspGetNewByDateResult> list =_reportsRepository.GetNewByDate(DateTime.Parse(date1), DateTime.Parse(date2));

            var amount = from p in list
                         select p.Quantity;


            var jsonData = new
            {
                total = 1,
                page = 1,
                records = list.Count(),
                userdata = new
                    {
                        Name = "Total:",
                        Quantity= amount.Sum().ToString()
                    },
                rows = (
                        from row in list
                        select new
                        {
                            i = row.RowNumber,
                            cell = new[] {
                                row.RowNumber.ToString(),
                                row.Name,
                                row.Quantity.ToString()
                            }
                        }).ToArray()

            };
            return Json(jsonData);
        }

【讨论】:

    猜你喜欢
    • 2011-08-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-01-26
    • 2015-08-16
    相关资源
    最近更新 更多