我正在尝试在ASP.Net MVC 5应用程序中使用Gijgo jQuery Grid,并在呈现网格时遇到问题。问题出在方法中的方法gj.widget.prototype.getHTMLConfig中:
var result = this.data(),
attrs = this[0].attributes;
错误是" Uncaught TypeError:无法读取属性'属性'未定义"。
我的HTML就是这个,它是局部视图:
<table id="grid" data-source='@Url.Action("RecentIssues", "Issue")' data-url='@Url.Action("Issue", "Issue")')></table>
我的网格初始化脚本是:
var grid = $('#grid').grid({
columns: [
{ field: 'Id', hidden: true, cssClass: 'grid-text' },
{ field: 'Type', width: 70, sortable: true, cssClass: 'grid-text' },
{ field: 'Created', width: 70, sortable: true, type: 'date', format: 'dd/mm/yyyy', cssClass: 'grid-text' },
{ field: 'Title', width: 600, sortable: true, cssClass: 'grid-text' },
{ field: 'Status', width: 70, sortable: true, cssClass: 'grid-text' },
{ field: 'Priority', width: 70, sortable: true, cssClass: 'grid-text' },
{ field: 'Severity', width: 70, sortable: true, cssClass: 'grid-text' },
{ field: 'Product', width: 150, sortable: true, cssClass: 'grid-text' }
]
});
网格确实显示但是因为我使用ajax来填充&#34;内容&#34;我的页面的一部分,我需要手动初始化网格,这是问题发生的地方,因为网格中的错误,手动初始化的脚本会被终止。
jQuery 2.2.4版
Bootstrap版本3.3.7
GijGo Grid V1.0.0
除了这个阻碍我的问题之外,Gijgo Grid看起来非常出色,正是我所寻找的。 p>
非常感谢任何帮助。
约翰
答案 0 :(得分:0)
$(&#39;#grid&#39;)选择器可能无法找到html标记。您可以尝试使用最新版本的网格,如果遇到此问题,您将获得更加用户友好的错误。
答案 1 :(得分:0)
您可以通过这种方式创建网格吗?
$(document).ready(function () {
var grid = $('#grid').grid({
dataKey: "Id",
dataSource: '@Html.Raw(@Url.Action("RecentIssues", "Issue"))',
columns: [
{ field: 'Id', hidden: true, cssClass: 'grid-text' },
{ field: 'Type', width: 70, sortable: true, cssClass: 'grid-text' },
{ field: 'Created', width: 70, sortable: true, type: 'date', format: 'dd/mm/yyyy', cssClass: 'grid-text' },
{ field: 'Title', width: 600, sortable: true, cssClass: 'grid-text' },
{ field: 'Status', width: 70, sortable: true, cssClass: 'grid-text' },
{ field: 'Priority', width: 70, sortable: true, cssClass: 'grid-text' },
{ field: 'Severity', width: 70, sortable: true, cssClass: 'grid-text' },
{ field: 'Product', width: 150, sortable: true, cssClass: 'grid-text' }
]
});
});
接下来我要确保您的Web api / MVC操作调用返回JSON:
public JsonResult GetContractItems(int contractFK)
{
//Dummy method GetIssues
List<Issue> issues = contractManager.GetIssues(Issue);
var issuesList = from o in issues
select new
{
Id = o.Id,
Type = o.Type,
Created = o.Created,
Title = o.Title,
Status = o.Status,
Priority = o.Priority,
Severity = o.Severity,
Product = o.Product
};
return Json(new { status = "success", records = issuesList.ToList() }, JsonRequestBehavior.AllowGet);
}