首先,是的,我知道Stackoverflow上几乎存在相同的问题,但我仍然无法使其工作。即使提供了解决方案,我在那里找到了:
Getting 0x800a01b6 - JavaScript runtime error: Object doesn't support property or method 'jqGrid'
问题: 当我尝试运行程序时,我收到此错误:
" 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方法。
如果您需要更多详细信息,请与我们联系。 (我的第一个问题)
答案 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.js
或jquery.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