我想從操作方法中獲取數據,並在Fiddler中實際獲取json數據,但網格不顯示任何內容。用jqgrid遇到問題
這是我的.cshtml:
<script type="text/javascript">
$(document).ready(function() {
$('#customers').jqGrid({
url: '/Home/Customers/',
dataType: 'json',
mType: 'POST',
colNames: ['CustomerID', 'ContactName', 'ContactTitle', 'Country', 'CompanyName', 'Fax', 'Phone'],
colModel: [
{ name: 'CustomerID', index: 'CustomerID', align: 'left' },
{ name: 'ContactName', index: 'ContactName', align: 'left' },
{ name: 'ContactTitle', index: 'ContactTitle', align: 'left' },
{ name: 'Country', index: 'Country', align: 'left' },
{ name: 'CompanyName', index: 'CompanyName', align: 'left' },
{ name: 'Fax', index: 'Fax', align: 'left' },
{ name: 'Phone', index: 'Phone', align: 'left' },
],
pager: jQuery('#customerPager'),
rowNum: 10,
rowList: [5, 10, 20, 50],
sortname: 'CustomerID',
sortorder: "desc",
viewrecords: true,
imgpath: '',
caption: 'My first grid'
});
});
</script>
在_Layout.cshtml,我也會參考腳本和我都正確加載:
<link href="@Url.Content("~/Content/Site.css")" rel="stylesheet" type="text/css" />
<link href="@Url.Content("~/Content/ui.jqgrid.css")" rel="stylesheet" type="text/css" />
<link href="@Url.Content("~/Content/ui.multiselect.css")" rel="stylesheet" type="text/css" />
<link href="@Url.Content("~/Content/themes/ui-lightness/jquery-ui-1.8.16.custom.css")" rel="stylesheet" type="text/css" />
<script src="@Url.Content("~/Scripts/jquery-1.5.1.min.js")" type="text/javascript"></script>
<script src="@Url.Content("~/Scripts/jquery.validate.min.js")" type="text/javascript"></script>
<script src="@Url.Content("~/Scripts/jquery-ui-1.8.11.min.js")" type="text/javascript"></script>
<script src="@Url.Content("~/Scripts/grid.locale-en.js")" type="text/javascript"></script>
<script src="@Url.Content("~/Scripts/jquery.validate.unobtrusive.min.js")" type="text/javascript"></script>
<script src="@Url.Content("~/Scripts/jquery.jqGrid.min.js")" type="text/javascript"></script>
這是我的家庭控制器的操作方法:
public JsonResult Customers(string sidx, string sord, int page, int rows)
{
NorthwindEntities entities = new NorthwindEntities();
int pageIndex = page - 1;
int pageSize = rows;
int totalRecords = entities.Customers.Count();
int totalPages = (int)Math.Ceiling((float)totalRecords/pageSize);
var customers = entities.Customers.OrderBy(k => k.CustomerID).Skip(pageIndex * pageSize).Take(pageSize).ToList();
var jsonData = new
{
total = totalPages,
page,
records = totalRecords,
rows = (from customer in customers
select new {
i = customer.CustomerID,
cell = new string[]{customer.CustomerID, customer.ContactName,
customer.ContactTitle, customer.Country, customer.CompanyName,
customer.Fax,
customer.Phone
}
}).ToArray()
};
return Json(jsonData,JsonRequestBehavior.AllowGet);
}
任何想法我錯過了什麼?
:D你很厲害,眼睛犀利。數據類型和mtype做了詭計!不過,我會下載你的解決方案,看看我能找到什麼好東西。非常感謝奧列格。我希望我能給你更多的選票。 – TCM
@Anthony:不客氣!投票的主要優點是其他人可以更好地找到答案,因爲高票的答案在搜索結果上是最重要的。所以我很高興我能幫助你。如果你會發現任何其他答案給你新的或有趣的信息只是使用你的投票權的答案。它會幫助其他人找到信息。 – Oleg
我很難找到這個問題。我已經研究過你的代碼,我必須說你寫得很漂亮。簡直美極了! – TCM