2012-06-24 66 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}的新列数组。

该列仍然可以访问,并且与其关联的所有数据也应该可用。

希望这会有所帮助!