2013-04-11 107 views
0

感謝您的時間幫助我使用jqGrid的第一步。我有一個關於如何處理我需要部署的網格的問題。jqGrid沒有初始化。這是正確的方法嗎?

要顯示在網格中的數據來自DataSet。我把表格解析成一個已經過驗證的Json字符串。所以,邏輯將是使用數據類型:'jsonstring',但我也讀過jsonstring和datastr在分頁方面是不是最新的。那麼你有什麼建議?

在這第一個草圖中,jqGrid沒有被初始化。空白頁。爲了縮小錯誤,我用包含jsonstring的局部變量代替了<%= jsonString%>:相同的結果。

<link rel="stylesheet" href="http://ajax.googleapis.com/ajax/libs/jqueryui/1.9.1/themes/south-street/jquery-ui.css" type="text/css" media="all" />  
<link href="css/ui.jqgrid.css" rel="stylesheet" type="text/css" /> 

<script src="js/jquery-1.8.2.js" type="text/javascript"></script> 
<script src="js/jquery-ui-1.9.1.custom.min.js" type="text/javascript"></script> 
<script src="js/i18n/grid.locale-es.js" type="text/javascript"></script> 
<script src="js/jquery.jqGrid.min.js" type="text/javascript"></script> 

<script type="text/javascript"> 
jQuery(document).ready(function() { 
    $(function() { 
     $("#Grid").jqGrid({ 
      datatype: 'jsonstring', 
      datastr: <%=jsonString%>; 
      mtype: 'POST', 
      height: 100, 
      width: 500, 
      colNames: ['Name', 'LastName', 'Qty', 'Yold', 'Address'], 
      colModel: [ 
        { name: 'Name', index: 'PCRC', width: 100, sortable: true }, 
        { name: 'LastName', width: 100, sortable: true }, 
        { name: 'Qty', width: 100, sortable: true }, 
        { name: 'Yold', width: 100, sortable: true }, 
        { name: 'Address', width: 100, sortable: true } 

       ], 
      rowNum: 10, 
      rowList: [10, 20, 30], 
      pager: '#GridPager', 
      sortname: 'Name', 
      viewrecords: true, 
      sortorder: 'asc', 
      caption: 'Test Grid' 
     }); 

     $("#Grid").jqGrid('navGrid', '#GridPager', { edit: false, add: false, del: false }); 
    }); 
}); 
</script> 

網格根本不顯示。

<table id="Grid" ></table> 
<div id="GridPager"></div> 

您是否看到我可能錯過的東西? 在此先感謝。

UPDATE

版本:jQuery的1.8.2.js 奧列格:沒有服務。

這裏是我用於變量數據的jsonstring示例。

var data = {"Tables":[{"Rows":[{"Name":"Alex","LastName":"Grey","Qty":3,"Yold":20,"Address":"27 rd"},{"Name":"Sebastian","LastName":"Wallace","Qty":78,"Yold":27,"Address":"33 xx"},{"Name":"Rose","LastName":"Garner","Qty":1,"Yold":33,"Address":"1111 rtd."},{"Name":"Carole","LastName":"Stewart","Qty":45,"Yold":18,"Address":"122 dr."}]}]};  
     $("#GridCantidadPendientes").jqGrid({ 
      datatype: 'jsonstring', 
      datastr: data, 
      //and so on 

如前所述,爲網格提供的數據來自DataSets。我有DataSets解析爲jsonstring,但如果爲了使網格工作,我需要建立JSON objets而不是字符串我可以做到這一點。但據我所嘗試,我不能讓網格工作。 再次感謝。

更新2

幾個更正後的網格現在到了。但它是空白的。無法從後面的代碼或js變量中獲取數據。

+0

你使用哪個版本的jqGrid?你寫了「解析成已經驗證的Json字符串的表」,但是你沒有描述輸入數據的確切格式。您應該向jqGrid提供有關確切格式結構的提示。如果你只是在你的問題中包含數據的例子,那很好。你有一些服務可以提供每個HTTP/HTTPS的JSON數據嗎? – Oleg 2013-04-11 18:18:40

+0

我假設你替換''%= jsonString%>''你擺脫了';'? – Mark 2013-04-12 01:39:34

+0

@Oleg我更新了這個問題,所以你有更多關於我的設置的信息。謝謝 – 2013-04-12 12:19:20

回答

0

在您的更新中,data不是JSON字符串,它只是一個變量。您可能需要使用datatype: local

數據也沒有以jqGrid預期的方式格式化。您需要修正格式或編寫自定義jsonReader(或localReader)函數。有關詳細信息,請檢查docs on retrieving data

+0

也許我錯過了一些東西,但我已經將'data'的內容粘貼到了一個jsonstring驗證器中,並聲稱它是一個json字符串。使用該變量作爲datastr是不夠的jqgrid? – 2013-04-12 15:38:48

+0

這是一個變量,而不是一個字符串,所以當Reader嘗試使用JSON.parse()時,沒有什麼好的事情會發生。你可以通過將它換成引號將它轉換爲JSON,但這不會有助於其他問題沒有jqGrid期望的佈局。 – RickF 2013-04-12 21:46:49

相關問題