为啥jqGrid不会加载?
Posted
技术标签:
【中文标题】为啥jqGrid不会加载?【英文标题】:why jqGrid wont load?为什么jqGrid不会加载? 【发布时间】:2017-01-27 09:33:37 【问题描述】:我对@987654323@ 枢轴版本有以下设置,这是从code for pivot 中提取的,但是运行时它给出了javascript
错误
SCRIPT5007:无法获取未定义或 null 的属性“长度” 参考 jquery.jqGrid.min.js,第 504 行字符 98
我该如何解决这个问题?
数据来自json
,来自C#
这是我的 MVC 操作
[AllowAnonymous]
[HttpGet]
public JsonResult GetProducts()
var coll = new List<SampleProductModel>();
//"CategoryName":"Beverages","ProductName":"Steeleye Stout","Country":"UK","Price":"1008.0000","Quantity":"65"
var p1 = new SampleProductModel CategoryName = "Beverages", ProductName = "Steeleye Stout", Country = "UK", Price = "1008.0000", Quantity = "65" ;
coll.Add(p1);
//"CategoryName":"Beverages","ProductName":"Steeleye Stout","Country":"UK","Price":"1008.0000","Quantity":"65"
var p2 = new SampleProductModel CategoryName = "Beverages", ProductName = "Big John", Country = "UK", Price = "1008.0000", Quantity = "65" ;
coll.Add(p2);
//"CategoryName":"Beverages","ProductName":"Laughing Lumberjack Lager","Country":"USA","Price":"140.0000","Quantity":"10",
var p3 = new SampleProductModel CategoryName = "Beverages", ProductName = "Laughing Lumberjack Lager", Country = "USA", Price = "140.0000", Quantity = "10" ;
coll.Add(p3);
//"CategoryName":"Beverages","ProductName":"Laughing Lumberjack Lager","Country":"USA","Price":"140.0000","Quantity":"10",
var p4 = new SampleProductModel CategoryName = "Beverages", ProductName = "Jims", Country = "USA", Price = "140.0000", Quantity = "10" ;
coll.Add(p4);
return Json(coll, JsonRequestBehavior.AllowGet);
这是我从上述链接中提取并修改为获取 C# json 数据的代码
<!DOCTYPE html>
<html>
<head lang="en">
<link rel="stylesheet" href="https://code.jquery.com/ui/1.12.1/themes/start/jquery-ui.css" />
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/jqgrid/4.6.0/css/ui.jqgrid.css" />
<script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.1.0/jquery.min.js"></script>
<script src="https://code.jquery.com/ui/1.12.1/jquery-ui.min.js" integrity="sha256-VazP97ZCwtekAsvgPBSUwPFKdrwD3unUfSGVYrahUqU=" crossorigin="anonymous"></script>
<script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/jqgrid/4.6.0/js/jquery.jqGrid.min.js"></script>
<script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/jqgrid/4.6.0/js/i18n/grid.locale-en.js"></script>
<script>
jQuery(document).ready(function()
jQuery("#grid").jqGrid('jqPivot',
"http://localhost:53721/Home/GetProducts",
// pivot options
xDimension : [
dataName: 'CategoryName', label : 'Category', width: 90,
dataName: 'ProductName', label : 'Product', width:90
],
yDimension : [
dataName: 'Country'
],
aggregates : [
member : 'Price', aggregator : 'sum', width:50, label:'Sum',
member : 'Quantity', aggregator : 'sum', width:50, label:'Qty'
],
rowTotals: true,
colTotals : true
,
// grid options
width: 700,
rowNum : 10,
pager: "#pager",
caption: "Amounts and quantity by category and product"
);
)
</script>
</head>
<body>
<table id="grid"></table>
<div id="pager"></div>
</body>
</html>
【问题讨论】:
您尝试从53721
端口加载数据,如果它与加载HTML 页面的端口不同,它将无法正常工作。见the same origin policy。此外,您永远不应该在jquery.jqGrid.min.js
中发布错误。您应该改用jquery.jqGrid.src.js
版本重新进行测试并发布相应的错误消息。您应该在jquery.jqGrid.min.js
(或jquery.jqGrid.src.js
)之前包含grid.locale-en.js
。
【参考方案1】:
对 jqgrid 不太了解,但我怀疑您拥有的 jquery 和 jqgrid 版本可能不兼容。所以我查了一下,你的 jqgrid 版本似乎是 4.6.0 版本,而最新版本似乎是 5.0.2 :
http://www.trirand.com/jqgridwiki/doku.php
所以也许尝试更新它?
http://www.trirand.com/blog/?page_id=6
【讨论】:
我正在使用 gurrido 拥有的 4.6 之后的免费版本,该版本不是免费的 @Oleg hi oleg 我知道你不是这个帖子的一部分,但我知道你目前正在维护 jqgrid 免费版本,所以你好心告诉我如何解决这个问题? @ANP:我只是偶然阅读了您的最后一条评论。仅当您将评论发布到我的旧答案或我之前写过 我的评论 的某个帖子时,我才会收到通知。您可以在here 中搜索“Oleg”,您将看到 54 个具有相同名称的用户的页面。如果不存在其他信息(我的回答或评论),Stackovrflow 无法解析名称。以上是关于为啥jqGrid不会加载?的主要内容,如果未能解决你的问题,请参考以下文章
jQgrid“loadComplete”事件仅在第一次加载时才被调用