2012-01-25 45 views
4

這是我的用於創建的jqGrid如何將數據動態分配給jqGrid?

$("#ptDataGrid").jqGrid({ 
        datatype: 'local', 
        data: arrSpecData, 
        colModel: colmod, 
        rowNum: 10, 
        rowList: [10], 
        pager: '#ptPager', 
        gridview: true, 
        rownumbers: false, 
        viewrecords: true, 
        loadonce:false, 
        hidegrid: false, 
        autowidth: true, 
        caption: 'Crank Pin', 
        height: '100%', 
       }); 

代碼然後我ahve在我的數據施加一些過濾器和創建另一個數組稱爲FilteredData。現在我想將這個新的數據源分配給我的網格。我已經嘗試了我所知道的所有方法。但沒有任何工作。那麼,我們如何才能動態地將新的數據源分配給jqGrid?請建議一些方法來分配它。

   dataGrid.setGridParam({ data: filterdData }); 
       dataGrid[0].refreshIndex(); 
       dataGrid.trigger("reloadGrid"); 

還是一樣的結果我得到:(

變通辦法#1

$('#divGrid').children().remove(); 
$('#divGrid').html(' <table id="ptDataGrid" class="jqgriddata"><tr><td/></tr></table><div id="ptPager"></div> '); 

createGrid(filterdData,true); 
+0

我不知道你如何測試我的建議。在我的答案的「更新」部分中,我將皮棉附加到了工作的演示中。 – Oleg

+0

@奧格,我也試過你的方法。但它沒有按預期工作,它顯示了更新的結果和以前的數據。 – Dinesh

+0

對不起,但你錯了!它顯示*僅更新的數據*。只需重複您的實驗或仔細查看我的演示。你可以保存html頁面,修改'mydata1'和'mydata2'中的數據,看看它是否真的有效。 – Oleg

回答

5

您可以先設置新data方面的setGridParam然後調用refreshIndex方法(見the answer)更新內部使用的_index參數

已更新:點擊the demo上的「更改數據」按鈕,驗證該方法是否有效。

+0

你的演示爲我工作,但是當我與我的代碼集成時,它給了我同樣的舊問題。我想,我錯過了我的代碼中的東西。我會查的。 – Dinesh

+0

@Dinesh:你只發布了你使用的代碼片段,所以我找不到錯誤。 jqGrid內部使用不多於設置'data'並調用'refreshIndex'。所以這是正確的方法。什麼是你的網格中沒有工作?你的錯誤可以在你使用的'colModel'或數據'arrSpecData'中。這些是你問題中最重要的部分。 – Oleg

相關問題