【发布时间】:2013-03-08 10:45:15
【问题描述】:
我是 ASP.Net MVC 4.0 的新手,我正在尝试使用 Trirand 的 JQGrid 从数据库中填充数据。当我尝试将数据绑定到 JQGrid 时出现上述错误。
错误在下面一行
return gridModel.MarketPriceAnalysisGrid.DataBind(oMarketPriceAnalysisModel.AsQueryable<MarketPriceAnalysisModel>());
代码如下:
// This method is called when the grid requests data
public JsonResult SearchGridDataRequested()
{
// Get both the grid Model and the data Model
var gridModel = new MarketPriceAnalysisJQGridModel();
// customize the default Orders grid model with our custom settings
SetUpMarketPriceAnalysisGrid(gridModel.MarketPriceAnalysisGrid);
var oMarketPriceAnalysisModel = MarketPriceAnalysisRepository.GetListOfSAPSPTComponents();
// return the result of the DataBind method, passing the datasource as a parameter
// jqGrid for ASP.NET MVC automatically takes care of paging, sorting, filtering/searching, etc
return gridModel.MarketPriceAnalysisGrid.DataBind(oMarketPriceAnalysisModel.AsQueryable<MarketPriceAnalysisModel>());
}
GetListofSAPSPTComponents 方法返回一个 IEnumerable
IEnumerable<MarketPriceAnalysisModel> GetListOfSAPSPTComponents();
我刚刚发现错误源是 Trirand.Web.MVC 并且堆栈跟踪显示
`at Trirand.Web.Mvc.Util.PrepareJsonResponse(JsonResponse response, JQGrid grid, DataTable dt)
at Trirand.Web.Mvc.Util.ConvertToJson(JsonResponse response, JQGrid grid, DataTable dt)
at Trirand.Web.Mvc.JQGrid.FilterDataSource(Object dataSource, NameValueCollection queryString, IQueryable& iqueryable)
at Trirand.Web.Mvc.JQGrid.GetJsonResponse()
at Trirand.Web.Mvc.JQGrid.DataBind()
at Trirand.Web.Mvc.JQGrid.DataBind(Object dataSource)
at MedPackMVC.Controllers.MarketPriceAnalysisController.SearchGridDataRequested() in c:\Work\04_Dev\MedPackMVCApplication\MedPackMVC\Controllers\MarketPriceAnalysisController.cs:line 95
`
不确定这可能是什么原因? 谢谢
【问题讨论】:
-
最终,
MarketPriceAnalysisRepository.GetListOfSAPSPTComponents()返回 null。你检查了吗? -
@Dima - 不,它从数据库返回数据。
-
我发现了这个问题。 JQGrid 的数据字段名称未正确映射到数据库列名称。
-
感谢@siv,我遇到了同样的问题,您的上述评论帮助我确定了我使用的列别名之一与 JQGridColumn.DataField 不匹配。请将此作为答案发布,因为它可能对其他人有所帮助。
标签: asp.net-mvc mvcjqgrid