【发布时间】:2011-02-18 16:48:23
【问题描述】:
有没有将数据加载到页脚的示例?我找不到任何东西,或者我在工作中被阻止了。
提前谢谢...
【问题讨论】:
-
页脚是什么意思?可以给我们截图吗?
有没有将数据加载到页脚的示例?我找不到任何东西,或者我在工作中被阻止了。
提前谢谢...
【问题讨论】:
看演示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 的最后一行显示为粗体。
【讨论】:
上面的答案很有帮助。无论如何,这是我在 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);
}
【讨论】: