SlickGrid列选择器:设置要从较大列表中显示的默认列

时间:2013-01-21 10:59:50

标签: javascript slickgrid

我目前正在使用SlickGrid并允许用户使用ColumnPicker选择要显示的列。

按照http://mleibman.github.com/SlickGrid/examples/example4-model.html的示例,我已经能够很好地完成这项工作。

我不确定的下一步是,是否可以选择要在首次渲染时显示的默认列列表。

例如,假设我有一个5列的数组,声明如下:

{
                    name: "Name"
                    field: "Name"
                    id: "Name" 
                    sortable: true
                    minWidth: 120
                    editor: Slick.Editors.Text
                }, 
                {
                    name: "Address"
                    field: "Address" 
                    id: "Address"
                    sortable: true
                    minWidth: 175
                    editor: Slick.Editors.Text
                },
                {
                    name: "Town"
                    field: "Town"
                    id: "Town"
                    sortable: true
                    minWidth: 80
                    editor: Slick.Editors.Text
                }, 
                {
                    name: "Country"
                    field: "Country"
                    id: "Country"
                    sortable: true
                    minWidth: 80
                    editor: Slick.Editors.Text
                }, 
                {
                    name: "Network"
                    field: "Network"
                    id: "Network"
                    sortable: true
                    minWidth: 80
                    editor: Slick.Editors.Text
                }

此时将显示所有这些列,并且可以选择将其隐藏在ColumnPicker中。我要查找的功能是,例如,我只想显示名称,地址和网络列,但仍然将其他列保留为ColumnPicker中的选项。

这是否到位或是否有可行的方法来实现这一目标?

1 个答案:

答案 0 :(得分:8)

对于任何可能遇到此问题的人,我找到了一个有效但可能不是最好的解决方案。

它实际上使用了2个独立的数组,1个保存了要呈现的默认列,另一个包含了您可以选择的所有列的名称,包括默认列数组。

渲染时,我使用默认列数组实例化我的网格:

@Grid = new Slick.Grid(@ElementId, @Data, @DefaultColumns, @GridOptions)

然后在设置列选择器时,使用所有列的数组:

columnpicker = new Slick.Controls.ColumnPicker(@Columns, @Grid, @GridOptions)