获取0x800a01b6 - JavaScript运行时错误:对象不支持属性或方法' jqGrid'

时间:2017-07-17 13:46:59

标签: jqgrid

首先,是的,我知道Stackoverflow上几乎存在相同的问题,但我仍然无法使其工作。即使提供了解决方案,我在那里找到了:
 Getting 0x800a01b6 - JavaScript runtime error: Object doesn't support property or method 'jqGrid'

  • 我想将数据导入我的网格。
  • 我正在使用 Visual Studio 2017

问题: 当我尝试运行程序时,我收到此错误:

  

" Link"

中第56行第13栏未处理的异常      

0x800a01b6 - JavaScript运行时错误:对象不支持属性或方法' jqGrid'

index.cshtml:

<!DOCTYPE html>

<html>

<head>
    <title>FlexDatenportal</title>
    <link rel="icon" href=".\icon.png">
    <link href="~/styles/styles`enter code here`heet1.css" rel="stylesheet" />
    <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script>
    <script src="https://cdnjs.cloudflare.com/ajax/libs/free-jqgrid/4.14.1/jquery.jqgrid.min.js"></script>

    <script type=text/javascript>
        $

(function () {
                "use strict";
                $("#grid").jqGrid({
                    colModel: [
                    { key: true, name: 'ID', index: 'ID'},
                    { name: "Vorname" },
                    { name: "Nachname" }
                ],
                data: [
                    { Vorname: "Angelk", Nachname: "Merkel" },
                    { Vorname: "Vladimir", Nachname: "Putin" },
                    { Vorname: "David", Nachname: "Cameron" },
                    { Vorname: "Barack", Nachname: "Obama" },
                    { Vorname: "François", Nachname: "Hollande" }
                ]
                });

        });
    </script>
</head>

<body>
    <div class="header">
        <a href=".\index.html"><img class="flexLogo" src="~/styles/Bilder/flexLogo.png" alt="Logo"></a>
        <h1 class="Titel">Datenportal</h1>
        <p class="UsernameTag">username</p>
        <img class="profileimg" src="~/styles/Bilder/profileimage.jpg" alt="profileimg">
    </div>

    <div class="section">
        <div class="Daten">
            <p class="DatenHeadline">Daten</p>

            <table id="grid"></table>         

            <div class="inputAButton row">
                <div class="col-md-3">
                    <input class="form-control" type="text" value="" id="in1" maxlength="20">
                </div>

                <div class="col-md-3">
                    <input class="form-control" type="text" value="" id="in2" maxlength="20">
                </div>

                <div class="col-md-3">
                    <input class="form-control" type="text" value="" id="in3" maxlength="20">
                </div>

                <div class="col-md-3">
                    <div class="input-group">
                        <input class="form-control" type="text" value="" id="in4" maxlength="20">
                        <span class="input-group-btn">
                            <button type="button" id="AddButton" class="btn btn-primary">+</button>
                        </span>
                    </div>

                </div>
            </div>
            <p class="Signed">by Patrick Korb</p>
        </div>
    </div>
</body>
</html>

HomeController.cs:

using System;
using System.Collections.Generic;
using System.Data.SqlClient;
using System.Linq;
using System.Web;
using MyFirstWebApp.Models;
using System.Web.Mvc;
using System.Data;
using Newtonsoft.Json;
using System.Text;
using System.Data.Entity;
using System.Web.UI;
using System.Diagnostics;
using System.Threading;
using System.IO;
using System.Reflection;
using System.Net;
using System.ComponentModel;
using System.Web.Script.Serialization;

namespace MyFirstWebApp.Controllers
{
    public class HomeController : Controller
    {
        /***Connection***/
        SqlConnection sqlCon = new SqlConnection(System.Web.Configuration.WebConfigurationManager.AppSettings.Get("myConnectionString"));
        PatrickTestDBEntities db = new PatrickTestDBEntities();

        public ActionResult Index()
        {

            return View();
        }

        public JsonResult GetMitarbeiter()
        {
            var testQuery = (from a in db.tbl_PatricksMitarbeiter
                             select new
                             {
                                 a.ID,
                                 a.Vorname,
                                 a.Nachname
                             }).Distinct();

            return Json(testQuery);
        }

        public ActionResult About()
        {
            ViewBag.Message = "Your application description page.";

            return View();
        }

        public ActionResult Contact()
        {
            ViewBag.Message = "Your contact page.";

            return View();
        }
    }
}

我尝试了Oleg的免费jqGrid。我几乎从https://free-jqgrid.github.io/getting-started/index.html复制了Oleg的Javascript并更改了Controller中的GetMitarbeiter方法。

如果您需要更多详细信息,请与我们联系。 (我的第一个问题)

2 个答案:

答案 0 :(得分:0)

请写总是您使用的jqGrid的版本以及jqGrid的{strong> fork (free jqGrid,商业{{3或者版本中的旧jqGrid&lt; = 4.7)。

以任何方式使用JavaScript文件列表和文件顺序

<script src="~/Scripts/JQGrid/jquery-ui.min.js"></script>
<script src="~/Scripts/JQGrid/grid.locale-en.js"></script>   
<script src="~/Scripts/JQGrid/jquery-1.11.0.min.js"></script>
<script src="~/Scripts/JQGrid/jquery.jqGrid.min.js"></script>
<script src="~/Scripts/JQGrid/jquery.jqGrid.js"></script>

错了。

首先应该包含jQuery(例如jquery-1.11.0.min.js),然后是所有jQuery插件:jQuery UI(jquery-ui.min.js)和jqGrid。除了JS文件之外,还需要包含jQuery UI CSS。

如果您使用旧版本的jqGrid(或商业Guriddo jqGrid JS),那么您应该在grid.locale-en.js之前加入jquery.jqGrid.min.js。如果您使用免费的jqGrid分叉,那么您不需要包含grid.locale-en.js,因为默认情况下,jquery.jqGrid.min.js中包含英语美国语言环境。

包含两者最小化(jquery.jqGrid.min.js)和非最小化(jquery.jqGrid.jsjquery.jqgrid.src.js)jqGrid的JavaScript代码是错误的。你应该使用只有一个版本的jqGrid。

如果您在页面上使用Bootstrap CSS,那么您应该考虑将jqGrid与Bootstrap选项一起使用。例如,请参阅Guriddo jqGrid JS。您可以从CDN加载所有免费的jqGrid文件(参见here),或者使用NuGet包the wiki article或npm包中的免费jqGrid(参见free-jqGrid)。

更新项目中的错误与jqGrid无关。您在Index.cshtml 中包含了以<!DOCTYPE html>开头的页面的整个 HTML代码。 ASP.NET MVC默认情况下将"~/Views/Shared/_Layout.cshtml"Index.cshtml的内容结合在一起,您将获得绝对错误的HTML页面,其中Index.cshtml的内容将放置在<body>的{​​{1}}中{1}}。

您可以通过添加

来解决问题
_Layout.cshtml

@{ Layout = null; } 的开头(行Index.cshtml之前)。

答案 1 :(得分:0)

如果您使用Guriddo jqGrid请检查详细安装documentation here