2010-05-12 103 views
7

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

在此先感谢...

+0

你是什么意思的页脚?你能给我们一个屏幕截图吗? – gurun8 2010-05-12 15:28:37

回答

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中有一列(名称:'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的最后一行显示为fat。

+0

我使用JSON和Coldfusion。 – 2010-05-12 19:25:34

+0

非常感谢!很有帮助! – 2010-05-13 13:01:28

+0

@ Oleg:另一个很好的答案Oleg,另外一个问题是,你如何在脚注行中得到“Totals”标签,就像你在上面标记的演示中一样? – Mark 2012-10-17 02:14:48

4

上面的答案有很大的帮助。反正这里是我做到了,在MVC.Net方式:

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

footerrow:真实, userDataOnFooter:真

在对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); 
     }