2013-03-14 42 views
0

我创建从JSON字符串的jqGrid“http://www.ok-soft-gmbh.com/jqGrid/John.txt如何使用JSON

我写的JavaScript的类似“http://www.ok-soft-gmbh.com/jqGrid/John.htm”和网址 指向john.txt文件来填充jqGrid的表。

它给了我一张没有任何行的表格。请帮忙。

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml"> 
<head> 
    <title>Demonstration how to read simple JSON text</title> 
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 

    <link rel="stylesheet" type="text/css" href="http://ajax.googleapis.com/ajax/libs/jqueryui/1.8.10/themes/redmond/jquery-ui.css" /> 
    <link rel="stylesheet" type="text/css" href="http://www.ok-soft-gmbh.com/jqGrid/jquery.jqGrid-3.8.2/css/ui.jqgrid.css" /> 
    <script type="text/javascript" src="http://code.jquery.com/jquery-1.5.1.min.js"></script> 
    <script type="text/javascript" src="http://www.ok-soft-gmbh.com/jqGrid/jquery.jqGrid-3.8.2/js/i18n/grid.locale-en.js"></script> 
    <script type="text/javascript" src="http://www.ok-soft-gmbh.com/jqGrid/jquery.jqGrid-3.8.2/js/jquery.jqGrid.min.js"></script> 

     <script type="text/javascript"> 
     //<![CDATA[ 
      jQuery(document).ready(function() { 
       $('#jqgrid').jqGrid({ 
        url: 'http://www.ok-soft-gmbh.com/jqGrid/John.txt', 
        datatype: 'json', 
        colNames: ['Col1', 'Col2', 'Col3'], 
        colModel: [ 
         { name: 'col1' }, 
         { name: 'col2' }, 
         { name: 'col3' } 
        ], 
        jsonReader: { repeatitems: false }, 
        height: 'auto' 
       }); 
       }); 
     //]]> 
     </script> 
    </head> 
    <body> 
     <table id="jqgrid"><tr><td/></tr></table> 
    </body> 
    </html> 

这是我的代码是什么...
,这就是我得到

http://tinypic.com/view.php?pic=vqps1x&s=6

+0

你应该张贴*您确切的代码*。 [我的旧演示](http://www.ok-soft-gmbh.com/jqGrid/John.htm)的作品。所以为了能够理解你的问题,你应该知道你的代码*。 – Oleg 2013-03-14 16:17:48

+0

请找到我试过的代码 – 2013-03-14 17:34:29

回答

1

首先,你应该小心的url形式“的用法http://www.ok-soft-gmbh.com/jqGrid/John.txt“,因为Same Origin Policy的限制,你可以使用ajax请求只用于来自同一网站的数据,所以为了防止这种情况,你应该使用url而不是协议,域和端口前缀。由于您尝试访问的数据来自另一个域,因此您无法将其直接传递给url参数。解决方法是,您必须使用自己的json数据分配或您自己的域名url以从中获取数据。或者你也可以设置与JSON数据的本地变量,并将其分配给jqGrid的

+0

谢谢你mann ..抱歉,迟到的评论..它的BCS JSON是在不同的领域。当我把它们放在同一个域中时,它就工作了。 – 2013-04-09 06:27:14

+0

欢迎您:) – 2013-04-09 06:42:11

1

我认为它,因为你正在为一个资源是另一个域中的Ajax请求。

试试这个,下面的数据给出保存到一个文件John.txt并更改URL指向这个

url: 'John.txt'

{ 
    "total": 2, 
    "page": 1, 
    "records": 12, 
    "rows": [ 
     { 
      "id": "1", 
      "col1": "cell11", 
      "col2": "cell12", 
      "col3": "cell13" 
     }, 
     { 
      "id": "2", 
      "col1": "cell21", 
      "col2": "cell22", 
      "col3": "cell23" 
     } 
    ] 
}