2013-02-08 56 views
2

我想加載一個jqGrid表格,我用velocity生成一個json字符串;這些是表參數:使用jsonstring數據類型加載一個jqgrid表格

var gridParams = { 
    datatype: "jsonstring", 
    data: content, 
    pager: $('#pagernav'), 
    rowNum: 5000, 
    rownumbers: true, 
    rowList: [50,100,200,500,1000,2000], 
    ignoreCase: true, 
    colNames: columns, 
    colModel: tableColModel, 
} 

的內容和列中的值,輸出到控制檯上時是:

[{"ID":"7", "fname":"Bob", "addr":"18" }, {"ID":"8", "fname":"Sue" }] 
["ID", "fname", "addr"] 

事實上網格與右列創建,但它是空.. 。我寫的是什麼錯?感謝您的回答。

+0

它可能是數據數組中第二個元素中缺少的addr。 – Cerbrus 2013-02-08 13:43:27

+0

我試過了,它不會改變任何東西... – user1012480 2013-02-08 13:54:10

+0

發現另一種可能性:嘗試使用'datastr:'而不是'data:'。 – Cerbrus 2013-02-08 13:58:43

回答

4

首先,更多的使用datatype: "jsonstring"的90%是以錯誤的方式使用jqGrid的情況。您沒有更詳細地描述您的原始問題,但我建議您考慮使用datatype: "json"而不是datatype: "jsonstring"

如果你真的需要使用datatype: "jsonstring",那麼你應該使用的datastroption而不是在datatype: "local"情況下使用data選項提供的輸入數據。

來自content的數據是真的JSON字符串(typeof content === "string")或者您有數據作爲對象(typeof content === "string")?在我看來,最好在您的案例中使用datatype: "local", data: contentdatatype: "local", data: $.parseJSON(content)而不是使用datatype: "jsonstring", datastr: content,,因爲輸入數據的格式不是datatype: "jsonstring"(請參閱the documentation)的標準要求,所以爲了能夠成功讀取數據,您必須提供相應jsonReader(見here一個例子)

以任何方式,我會建議你使用gridview: true選項,更換pager: $('#pagernav')pager: '#pagernav'和定義key: true屬性'ID'列。此外,你應該總是在問題的文本中包含colModelcolModel: tableColModel的文字朝代碼$.jqGrid(myOptions)的方向 - 如果顯示沒有必要的詳細信息,這對於您的問題的的解決方案可能非常重要。

+0

非常感謝你 – user1012480 2013-02-08 14:27:30

+0

@ user1012480:不客氣!我建議你真的發佈你使用的更完整的代碼和更全面的問題描述。例如,你發佈'gridParams'。典型的錯誤是調用'$(「#gridid」)。jqGrid(gridParams);'多爲**一次**。該調用通過'

'創建許多*外部潛水*,因此應該只創建一次。將'gridParams'定義爲對象的事實可能意味着你試圖在不破壞的情況下更多地調用它。所有下一個調用將被jqGrid abd忽略,您可能會有不明確的網格行爲。 – Oleg 2013-02-08 14:34:56

相關問題