Я занимаюсь разработкой приложения ASP.NET MVC 2. Я хочу показать список данных объекта. как List<MyObject>
. Поэтому я попытался код в действии контроллера как:
[HttpGet]
public ActionResult JsonSalesCollection()
{
string id = Request.QueryString["id"];
ViewData["TrustId"] = id;
Guid id1 = new Guid(id);
List<TrustContract> contractList = trustContractmang.GetListOfTrustContractByTrustId(id1);
int pageIndex = 12;
int pageSize = 20;
int totalRecords = contractList.Count();
int totalPages = (int)Math.Ceiling((float)totalRecords / (float)pageSize);
string orderBy = string.Format("{0} {1}", "TrustContracId", "desc");
var jsonData = new
{
total = totalPages,
page = 20,
records = totalRecords,
rows = (
from s in contractList
select new
{
i = s.TrustContracId,
cell = new string[] {
s.TrustContracId.ToString(),
s.Trust.TrustName.ToString(),
s.ContractStartDate.ToShortDateString(),
s.ContractEndDate.ToShortDateString(),
s.ContractAmount.ToString(),
s.RecoveredAmount.ToString(),
s.IsCompleted.ToString()
}
}).ToArray()
};
return Json(jsonData);
}
Это работает нормально, также генерирует результат JSON. На странице просмотра я использую скрипт:
var gridimgpath = '/Scripts/jqgrid/themes/redmond/images';
var TrustId = <%= serializer.Serialize(ViewData["TrustId"]) %>;
// use date.js to calculate the values for this month
var gridDataUrl = '/NewTrustContract/JsonSalesCollection?id='+ TrustId;
$("#list").jqGrid({
url: gridDataUrl,
datatype: "json",
mtype: 'GET',
colNames: ['TrustContracId', 'Trust', 'Contract Start Date',
'Contract End Date', 'Contract Amount', 'Recovered Amount',
'Is Completed'],
colModel: [
{ name: 'TrustContracId', index: 'TrustContracId', width: 50, align: 'left' },
{ name: 'Trust', index: 'Trust', width: 100, align: 'left' },
{ name: 'ContractStartDate', index: 'ContractStartDate', width: 100, align: 'left' },
{ name: 'ContractEndDate', index: 'ContractEndDate', width: 100, align: 'left' },
{ name: 'ContractAmount', index: 'ContractAmount', width: 100, align: 'left' },
{ name: 'RecoveredAmount', index: 'RecoveredAmount', width: 100, align: 'right' },
{ name: 'IsCompleted', index: 'IsCompleted', width: 100, align: 'right' }
],
rowNum: 20,
rowList: [10, 20, 30],
imgpath: gridimgpath,
height: 'auto',
width: '900',
pager: jQuery('#pager'),
sortname: 'TrustContracId',
viewrecords: true,
sortorder: "desc",
caption: "Contract"
});
хорошо, для этого я использовал:
< table id="list" class="scroll" cellpadding="0" cellspacing="0" >< /table >
< div id="pager" class="scroll" style="text-align:center;" >< /div >
, чтобы удерживать сетку. Я даже могу видеть пустой вид сетки на странице .aspx. но не появляются данные. Так значит ли это, что мне нужно вручную итерировать данные JSON в jquery. если да, то где я могу получить данные JSON в j запросе. и как это повторить. я знаю, что onli $.each
используется для повторных данных. а как получить данные в var? или другое средство для этой функции?
Откуда мне взять краткую документацию jqgrid для чтения?