0

我正在尝试使用帮助程序在 MVC3 中实现 JqGrid,但我一直收到一个 javascript 错误 - * “JavaScript 运行时错误:对象不支持属性或方法 'jqGrid'”。*我还在我的项目中添加了 MVCJqgrid 的引用。这是我在视图中的 Jqgrid 代码:-

@(Html.Grid("AgentGrid")
    .SetCaption("Agents")

    .AddColumn(new MvcJqGrid.Column("AgentId").SetLabel("Agent SSN"))
        .AddColumn(new MvcJqGrid.Column("Name"))
        .AddColumn(new MvcJqGrid.Column("Country"))
        .AddColumn(new MvcJqGrid.Column("City"))
        .AddColumn(new MvcJqGrid.Column("Title"))
        .SetUrl(Url.Action("List", "Home"))
    .SetAutoWidth(true)
    .SetRowNum(10)
    .SetViewRecords(true)
    .SetPager("pager")
    )

这是我在控制器中的操作代码:-

 public ActionResult List(GridSettings gridSettings)
        {
            DataContext db = new DataContext();

            string Name = string.Empty;
            string Country = string.Empty;
            string City = string.Empty;
            string Title = string.Empty;

            if (gridSettings.IsSearch)
            {
                Name = gridSettings.Where.rules.Any(r => r.field == "Name") ?
                       gridSettings.Where.rules.FirstOrDefault(r => r.field == "Name").data : string.Empty;
                Country = gridSettings.Where.rules.Any(r => r.field == "Country") ?
                gridSettings.Where.rules.FirstOrDefault(r => r.field == "Country").data : string.Empty;
                City = gridSettings.Where.rules.Any(r => r.field == "City") ?
               gridSettings.Where.rules.FirstOrDefault(r => r.field == "City").data : string.Empty;
                Title = gridSettings.Where.rules.Any(r => r.field == "Title") ?
               gridSettings.Where.rules.FirstOrDefault(r => r.field == "Title").data : string.Empty;

            }

            var Agents = db.Agent.ToList();
            int totalAgents = Agents.Count;
            var jsonData = new
            {
                total = totalAgents / gridSettings.PageSize + 1,
                page = gridSettings.PageIndex,
                records = totalAgents,
                rows = (
                        from c in Agents
                        select new
                        {
                            id = c.AgentId,
                            cell = new[]
                    { c.AgentId.ToString(),
                        string.Format("{0} {1}", c.Name, c.Country),
                        c.City,
                        c.Title
                    }
                        }).ToArray()
            };

            return Json(jsonData, JsonRequestBehavior.AllowGet);
        }

请建议我解决问题!提前致谢!!

4

2 回答 2

0

错误很明显,jqGrid object was not created.

请在视图中检查您include the jqGrid.js or min.js的文件

使用 firefox(firebug)/chrome 和监控console (press F12)将帮助您解决此类问题

于 2013-08-22T07:46:41.323 回答
0

根据错误,scipts 没有正确加载,我认为这个插件没有添加 jqGrid 库,您需要在 BundleConfig 或 _Layout.chrtml 中手动添加它,具体取决于您的结构。

编辑:您需要将 jqGrid init 方法放在适当的位置(document.ready),还需要为 jqgrid 设置正确的脚本顺序。读这个

$(function () {
    $("#grid").jqGrid({ blabla });
});
于 2013-08-22T06:50:26.050 回答