【发布时间】:2014-10-30 08:03:14
【问题描述】:
我一直在环顾四周,但没有发现(这很明显的功能?)在 slickgrid 中默认禁用列。
例如我有以下网格:
Name Age City Nickname
例如,我希望禁用 city 列,并使其仅在用户转到自定义列选择器时可见,然后启用它。
谢谢
【问题讨论】:
标签: javascript slickgrid
我一直在环顾四周,但没有发现(这很明显的功能?)在 slickgrid 中默认禁用列。
例如我有以下网格:
Name Age City Nickname
例如,我希望禁用 city 列,并使其仅在用户转到自定义列选择器时可见,然后启用它。
谢谢
【问题讨论】:
标签: javascript slickgrid
我已经这样做了。
var org_columns = [],hid_columns = [];
org_columns.push(
cb_selector.getColumnDefinition(),
{id: "id", name: "ID", field: "id", sortable: true, width: 56},
{id: "name", name: "Name", field: "name", editor: Slick.Editors.Text, sortable: true, width: 234},
{id: "email", name: "Email", field: "email", editor: Slick.Editors.Text, sortable: true, width: 234}
);
hid_columns.push(
cb_selector.getColumnDefinition(),
{id: "name", name: "Name", field: "name", editor: Slick.Editors.Text, sortable: true, width: 234},
{id: "email", name: "Email", field: "email", editor: Slick.Editors.Text, sortable: true, width: 234}
);
var data_view = new Slick.Data.DataView();
grid = new Slick.Grid("#grid", data_view, hid_columns, grid_options);
var columnPicker= new Slick.Controls.ColumnPicker(org_columns, grid,grid_options);
【讨论】:
有点迟的答案,但您可以在创建列选择器控件时传入另一个数组对象。
var defaultColumns = [
{id: "1", name: "1st Column" field: "Name"},
{id: "2", name: "2st Column" field: "Age"}
],
allColumns = [
{id: "1", name: "1st Column" field: "Name"},
{id: "2", name: "2st Column" field: "Age"}
{id: "3", name: "3st Column" field: "Gender"},
{id: "4", name: "4st Column" field: "Status"}
];
//create grid and pass in defaultColumns
grid = new Slick.Grid("#List", dataView, defaultColumns, options)
//create the column control and pass in the allColumns
columnpicker = new Slick.Controls.ColumnPicker(allColumns, grid, options, "#List");
这将使用默认列初始化网格并将控件设置为包含所有可用列。它看起来不像 slickgrid wiki 包含有关列选择器控件的正确文档,我只知道因为我必须深入研究代码并添加一个按钮来重置视图。
必填参考链接:https://github.com/mleibman/SlickGrid/wiki/Slick.Grid
【讨论】:
在对 SlickGrid 进行快速 RTFM 之后,我认为最简单的方法是使用 JS/JQ 操作它的类 - 正如您在开发人员工具中看到的那样,每一列和每一行都有定义行和列的类:
<div class="ui-widget-content slick-row even" style="top:0px"><div class="slick-cell l0 r0">Task 0</div><div class="slick-cell l1 r1">5 days</div><div class="slick-cell l2 r2">92</div><div class="slick-cell l3 r3">01/01/2009</div><div class="slick-cell l4 r4">01/05/2009</div><div class="slick-cell l5 r5">true</div></div>
<div class="ui-widget-content slick-row odd" style="top:25px"><div class="slick-cell l0 r0">Task 1</div><div class="slick-cell l1 r1">5 days</div><div class="slick-cell l2 r2">35</div><div class="slick-cell l3 r3">01/01/2009</div><div class="slick-cell l4 r4">01/05/2009</div><div class="slick-cell l5 r5">false</div></div>
发件人:http://mleibman.github.io/SlickGrid/examples/example1-simple.html
所以应该很容易:)
【讨论】: