Je développe l'application ASP.NET MVC 2. Je veux montrer le gird de la liste des données d'objet. comme List<MyObject>
. J'ai donc essayé un code dans l'action du contrôleur comme:problème avec jqgrid dans jequery dans asp.net mvc
[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);
}
Cela fonctionne bien, générant également un résultat JSON. Sur la page de vue, je suis en utilisant un script:
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"
});
ok, pour cela, j'utilisé:
< table id="list" class="scroll" cellpadding="0" cellspacing="0" ></table>
< div id="pager" class="scroll" style="text-align:center;" ></div>
pour maintenir le grid.I peut même voir la vue de la grille vide à la page .aspx sur la vue. mais n'apparaissant pas de données. Donc, cela signifie que je dois manuellement réitérer les données JSON dans jquery. si oui, alors où je peux obtenir des données JSON dans j requête. et comment l'itérer. Je sais onli $.each
est l'utilisation pour les données itérées. mais comment obtenir des données dans var? ou un autre remède pour cette fonctionnalité?
D'où devrais-je obtenir la documentation brève de jqgrid pour lire?