带有MVC Uncaught TypeError的Gijgo Grid

时间:2016-11-30 14:42:13

标签: jquery asp.net-mvc grid

我正在尝试在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看起来非常出色,正是我所寻找的。

非常感谢任何帮助。

约翰

2 个答案:

答案 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);
}