2012-06-24 102 views
7

在slickgrid中隱藏列是否可能?隱藏列我的意思是我想保存每行的一些數據,但我不希望這些數據顯示在網格上。如何在slickgrid中添加隱藏列

+0

'display:none'? – undefined

+0

我在哪裏放置?我認爲這不是一個好辦法。 – sivann

回答

17

數據與網格中的列之間不存在任何隱含關係 - 兩者存在完全相互獨立的關係。因此,您的數據可以包含比實際綁定到網格列更多的字段。

例子:

var grid; 
var columns = [ 
    {id: "title", name: "Title", field: "title"}, 
    {id: "duration", name: "Duration", field: "duration"}, 
    {id: "%", name: "% Complete", field: "percentComplete"}, 
    {id: "effort-driven", name: "Effort Driven", field: "effortDriven"} 
]; 

var options = { 
    enableCellNavigation: true, 
    enableColumnReorder: false 
}; 

$(function() { 
    var data = []; 
    for (var i = 0; i < 500; i++) { 
    data[i] = { 
     title: "Task " + i, 
     duration: "5 days", 
     percentComplete: Math.round(Math.random() * 100), 
     start: "01/01/2009", 
     finish: "01/05/2009", 
     effortDriven: (i % 5 == 0) 
    }; 
    } 

    grid = new Slick.Grid("#myGrid", data, columns, options); 
}) 

這裏我data陣列包含字段startfinish,但我選擇創建我columns陣列時,將它們排除在外。

+0

優秀!我認爲這會打破slickgrid。謝謝njr。 – sivann

+0

這是正確的。但是在我的情況下共有8列,其中4個顯示在網格中。在使用複合編輯器時,如果未聲明列,如何定義列編輯器? 「可見」列屬性將非常好。 – user1517081

+0

http://mleibman.github.io/SlickGrid/examples/上有複合和複合編輯器的樣本 –

3

我認爲你可以通過使用grid.setColumns來實現這一點 - 可以說你在聲明網格時設置了columns={id, a, b, c};網格初始化後,您可以調用grid.setColumns(newColumns) - 其中newColumns是不包含id - newColumns={a, b, c}的新列數組。

該列仍然可以訪問,並且與其關聯的所有數據也應該可用。

希望這會有所幫助!