JQGrid: загрузка данных в нижний колонтитул
Есть ли примеры загрузки данных в нижний колонтитул? Я не могу их найти или меня блокируют на работе.
Заранее спасибо...
2 ответа
Посмотрите демоверсию http://trirand.com/blog/jqgrid/jqgrid.html
и выберите в левом дереве "Новое в версии 3.5", а затем "Сводная строка нижнего колонтитула".
В примере один набор footerrow : true, userDataOnFooter : true
вариант jqGrid. Затем сервер добавить userdata
заблокировать данные, отправленные обратно в jqGrid. Вы можете прочитать о userdata
в http://www.trirand.com/jqgridwiki/doku.php?id=wiki:retrieving_data. Если userdata
Свойства block hat соответствуют именам столбцов jqGrid, данные будут отображаться в строке нижнего колонтитула.
Если вам нужна дополнительная информация, вы должны написать, какой тип данных вы используете в jqGrid (JSON, XML, xmlstring, jsonstring, локальный и т. Д.) И какой тип сервера вы используете (PHP, ASP.NET MVC, WCF и т. Д. И т. Д.).
ОБНОВЛЕНО: если вы используете стандартное отображение данных json (без опции jsonReader в jqGrid), то сервер выглядит
{
total: "xxx",
page: "yyy",
records: "zzz",
rows : [
{id:"1", cell:["cell11", "cell12", "cell13"]},
{id:"2", cell:["cell21", "cell22", "cell23"]},
...
]
}
Таким образом, данные не имеют названия столбцов из colModel. Если у вас есть, например, один столбец {name:'price', ...} внутри colModel и вы хотите показать общую цену в последней строке jqGid, вы должны определить footerrow: true, userDataOnFooter: true
внутри параметров jqGrid, и ваш сервер должен производить такие данные, как
{
total: "xxx",
page: "yyy",
records: "zzz",
rows : [
{id:"1", cell:["cell11", "cell12", "cell13"]},
{id:"2", cell:["cell21", "cell22", "cell23"]},
...
],
userdata: {price:1240.00}
}
Если вы используете другой jsonReader, все статистические данные не изменятся. Единственное, что вы можете определить, это изменить имя "userdata" на другое имя, но значение должно быть объектом с именем поля, как вы определили в colModel. Только значения этих полей будут показаны жирным шрифтом в последней строке jqGrid.
Ответ выше очень помогает. В любом случае, вот как я это сделал в MVC.Net:
Сначала это атрибуты по определению сетки:
footerrow: true, 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);
}