JQGrid:将数据加载到页脚行

时间:2010-05-12 15:25:22

标签: jquery jqgrid

是否有任何将数据加载到页脚的示例?在工作中我找不到任何或我被阻止。

提前致谢...

2 个答案:

答案 0 :(得分:17)

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

并在左侧树中选择“版本3.5中的新功能”,然后选择“摘要页脚行”。

在示例中,设置了jqGrid的footerrow : true, userDataOnFooter : true选项。然后服务器将userdata块添加到发送回jqGrid的数据中。您可以在http://www.trirand.com/jqgridwiki/doku.php?id=wiki:retrieving_data中了解userdata。如果userdata阻止帽子属性对应于jqGrid的列名称,则数据将显示在页脚行中。

如果您需要更多信息,您应该编写在jqGrid中使用的数据类型(JSON,XML,xmlstring,jsonstring,local等)以及您使用的服务器类型(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的最后一行显示为胖。

答案 1 :(得分:4)

上面的答案有很多帮助。无论如何,这是我在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);
        }