2013-03-14 38 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" 
     } 
    ] 
}