2010-05-12 106 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); 
     }