如何使用json填充jqGrid表

时间:2013-03-14 15:57:44

标签: jquery json jqgrid

我正在从json字符串“http://www.ok-soft-gmbh.com/jqGrid/John.txt

创建一个jqgrid

我编写的JavaScript类似于“http://www.ok-soft-gmbh.com/jqGrid/John.htm”和 url 指向john.txt文件。

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

<!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

2 个答案:

答案 0 :(得分:1)

首先,由于http://www.ok-soft-gmbh.com/jqGrid/John.txt限制,您应该谨慎使用“Same Origin Policy”形式的url。您只能对来自同一网络的数据使用ajax请求因此,为了防止这种情况,您应该使用网址而不使用协议,域名和端口前缀。此处,您尝试访问的数据来自另一个域,您无法通过它直接指向url参数。解决方案是你必须使用自己的 json 数据来分配或者你自己的域 url 来获取数据您可以使用 json 数据设置局部变量,并将其分配给 jqGrid

答案 1 :(得分:1)

我认为是因为,您正在为另一个域中的资源发出ajax请求。

尝试此操作,将以下给定的数据保存到文件John.txt中,并将您的网址更改为指向此

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" 
        } 
    ] 
}