2012-11-06 37 views
0

你好stackoverflow國家! 我有這樣的障礙。試圖傳入jjGrid數組中的數據,這些數據是在ajax中檢索的,但它不起作用。讓我們一起來看看腳本=>jqGrid內ajax本地數據

$(function(){ // this script works just fine (of course this array and jqGrid initialization script is in the same file) 
var arr = [ 
    {a:"a",b:"b"}, 
    {a:"c",b:"d"} 
]; 
$("#_tb").jqGrid({ 
    datatype: "local", 
    data: arr, 
    colNames: ["ONE","Two"], 
    colModel: [ 
     {name:"a",index:"a",align:"center"}, 
    {name:"b",index:"b",align:"center"} 
    ], 
    pager: $("#_pager"), 
    height: "auto" 
}); 
}); 

這裏是我的問題=>

$.ajax({ 
    url: "../info.php", 
    type: "get", 
    data: {}, 
    success: function(r){ 
     $("#_tb").jqGrid({ 
     datatype: "local", 
     data: r, 
     colNames: ["ONE","Two"], 
     colModel: [ 
      {name:"a",index:"a",align:"center"}, 
      {name:"b",index:"b",align:"center"} 
     ], 
     pager: $("#_pager"), 
     height: "auto" 
     }); 
    } 
    }); 

這個腳本是不行的,但數據阿賈克斯內成功地檢索到JSON格式。 這裏是info.php腳本的方式太

​​

PS。在我看來,我的問題連接到數據類型,但不能下定決心如何解決,即使搜索這樣的例子。 另外值得一提的是,我希望數據類型是本地的,因爲在jqGrid中搜索和過濾沒有任何SQL語句的數據。 對於任何意見,我會很高興,謝謝:)

+0

如果你想使用你當前的代碼,你應該添加'jQuery.ajax'的附加參數,如'dataType:「json」'或'contentType:「application/json」'。如果你將使用錯誤的參數,'success'回調中'r'參數的類型可能是'string'而不是數組對象。所以可能會被要求通過調用'$ .parseJSON(r)'手動將'r'轉換爲對象。 – Oleg

+0

@ Oleg感謝您的建議。所以在第二個例子中,我試圖從服務器檢索信息並將其作爲本地添加到jqGrid中,如果我將其轉換爲是,則可能是:)? – tnanoba

回答

2

很抱歉,但你張貼的工作代碼:看到the demo

enter image description here

所以,你應該在另一個地方尋找問題。

例如,一個可能的問題可能是您多次執行代碼。您應該創建一個網格一次,然後更改數據通過更改data參數的值和觸發reloadGrid。順便說一下,您可以直接在jqGrid中使用url: "../info.php"。您只需添加相應的jsonReader(請參閱here)。爲了能夠使用本地過濾,您只需將loadonce: true添加到jqGrid參數列表中即可。或者,您可以每次撥打GridUnload方法,然後重新創建電網(例如,請參閱the answer)。