我正在使用asp.net mvc来创建一个网页,呈现我天蓝色表中的数据的jqGrid。网格会回调到我的控制器并使用调试器,我可以直观地验证数据是否正确生成。问题是,一旦数据返回一个JSON字符串时,jqGrid的引发此错误:jqGrid不显示JSON数据
b.jgrid.getAccessor(p, d.cell) is undefined
http://localhost:54758/jquery.jqGrid.min.js
Line 65
我在网上找了文档,但已经在返回除了这似乎是库快照什么是不成功的。我已经剥离了我的代码,只有一列数据(如下所示)作为字符串返回,但仍然没有。
如果我将“datatype:'local',”行添加到我的jqGrid选项中,则不会引发错误。但是,数据仍然没有呈现。 “类似问题”中提出的其他问题都没有解决我的问题。数据只是一个Id字段,是一个简单的C#字符串。
下面是用于呈现的jqGrid ASPX文件内容:
<asp:Content ID="Content2" ContentPlaceHolderID="HeadContent" runat="server">
<%--Must load language tag BEFORE script tag--%>
<script src="grid.locale-en.js" type="text/javascript"></script>
<script src="jquery.jqGrid.min.js" type="text/javascript"></script>
<script type="text/javascript">
jQuery(document).ready(function() {
jQuery("#list").jqGrid({
autowidth: true,
url: '/HouseData/GridData/',
datatype: 'local', <---instead of 'local' I also tried 'jsonstring'
mtype: 'POST',
colNames: ['House Name'],
colModel: [
{ name: 'houseName', index: 'houseName', key: true, width: 80, align: 'right', hidden: false }],
pager: jQuery('#pager'),
rowNum: 20,
rowList: [5, 10, 20, 50],
sortname: 'houseName',
sortorder: "desc",
height: 400,
viewrecords: true,
imgpath: ''
});
});
<asp:Content ID="Content1" ContentPlaceHolderID="MainContent" runat="server">
<div id="main">
<h2><a href="#">Show House Name</a></h2>
<div class="disignBoxFirst">
<div class="boxContent">
<%: Html.Partial("HouseDataSearch") %>
</div>
</div>
<hr />
<table id="list" class="scroll" cellpadding="0" cellspacing="0"></table>
<div id="pager" class="scroll" style="text-align:center;"></div>
</div>
</asp:Content>
用来组成JSON字符串,包含在C#文件“HouseDataController.cs”功能,低于(最初我没有”吨具有用于上述的jqGrid中所示的“数据类型”中的aspx文件选择):使用萤火虫被抓住
public JsonResult GridData(string sidx, string sord, int page, int rows, string houseName)
{
//Setup values to return to the view for display of user entered values
ViewData["HouseName"] = houseName;
//Get table data
CloudStorageAccount storageAccount = CloudStorageAccount.FromConfigurationSetting("ConnectionString");
ReportStorageDataServiceContext storageContext = new ReportStorageDataServiceContext(storageAccount.TableEndpoint.ToString(), storageAccount.Credentials);
int houseCount = 0;
IQueryable<HouseDataModel> houses = storageContext.CreateQuery<HouseDataModel>("HouseDataTable").Where(h => h.isAvailable == true);
List<HouseDataModel> queryDetails = new List<HouseDataModel>();
foreach (HouseDataModel house in houses)
{
queryDetails.Add(house);
houseCount++;
}
//Figure out paging
int pageIndex = Convert.ToInt32(page) - 1;
int pageSize = rows;
int totalRecords = houseCount;
int totalPages = (int)Math.Ceiling((float)totalRecords/(float)pageSize);
var jsonData = new
{
total = totalPages,
page,
records = totalRecords,
rows = (from house in queryDetails select new { User = house.houseName }).ToArray()
};
return Json(jsonData);
}
错误消息。如果这不够具体/足够详细,或者如果它在另一个线程中解决,请告知。
谢谢!
海@Matthew Rygiel谢谢。刚才我也遇到了同样的问题。 JsonReader为我工作。谢谢。 – vissu