2010-11-20 231 views
13

這是我以前關於將列添加到基於jqGrid的表中的問題的補充。在這裏我的新的js代碼:jqGrid重新加載網格

var col_names = ['First', 'Second', 'Third', 'Fourth', 'Fifth']; 
var col_model = [ 
     {name:'invid', index:'invid', width:100}, 
     {name:'invdate', index:'invdate', width:90}, 
     {name:'amount', index:'amount', width:80, align:'right'}, 
     {name:'tax', index:'tax', width:80, align:'right'}, 
     {name:'total', index:'total', width:80, align:'right'}, 
]; 

function createGrid() 
{ 
    var handle = $("#list").jqGrid({ 
    url:'data.xml', 
    datatype: 'xml', 
    mtype: 'GET', 
    colNames: col_names, 
    colModel : col_model, 
    }); 
} 

現在我打電話createGrid();文件被加載後,一切工作正常。現在,我想添加一個新列(空數據),並重新加載的jqGrid:

$("#add_column").click(function() { 
     $('#list').trigger("DestroyGrid"); // Also tried UnloadGrid 

     col_names.push('New'); 
     col_model.push({name: 'test', index: 'test', width: 100}); 

     createGrid(); // And recreate grid 
    }); 

但什麼也沒有發生,爲什麼呢?


UPD

$("#add_column").click(function() { 
     col_names.push('New'); 
     col_model.push({name: 'test', index: 'test', width: 100}); 

     $('#list').trigger("reloadGrid"); 
    }); 

同樣的情況


UPD2 我嘗試這些:

ajaxGridOptions: {cache: false}, 
loadonce:false 

沒有改變的情況。

+0

'ajaxGridOptions:{緩存:假}'和'loadonce:FALSE'是默認設置,他們也沒有辦法。如果喲答案不幫助您,請將完整的代碼示例與HTML代碼一起發佈,然後測試您使用的XML,並對其進行修改以使其正常工作。 – Oleg 2010-11-20 13:47:46

回答

15

你可以做以下

var counter=1; // to be able to click more then one time 
$("#add_column").click(function() { 
    $("#list").jqGrid('GridUnload'); 

    col_names.push('New'+counter); 
    col_model.push({name: 'test'+counter, index: 'test'+counter, width: 100}); 
    counter++; 

    createGrid(); 
}); 
+0

謝謝!這對我有用。 – Ockonal 2010-11-20 14:17:35

+0

@Ockonal:您好! – Oleg 2010-11-20 14:24:38

2

儘量不破壞/創建,但.trigger("reloadGrid");

UPD::試圖通過loadonce:假電網創造PARAMS

UPD2::好像jqGrid的不能與柱的變化進行操作「在飛行中「。嘗試銷燬第一個網格並創建另一個網格,而不是它。

+0

請注意更新,沒有任何反應。 – Ockonal 2010-11-20 11:25:44

+0

再次更新,請看。 – Ockonal 2010-11-20 11:35:30

+0

我該如何銷燬它? – Ockonal 2010-11-20 12:06:49