2010-11-20 151 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