如何解决是否可以隐藏SlickGrid列而不将其从“列”数组中删除?
| 我想隐藏一列(它的ID列对于每一行都是唯一的),但是我无法将其从\“ columns \”数组中删除,因为在对行执行操作时,我需要该行中的数据(选择,排序等)。 例如,在进行排序之后,我需要获取与它们之前的样式匹配的行,然后可以使用ID列进行操作。我需要该行中的数据,我只是不想显示它。 谢谢。解决方法
答案是否定的,但这不是您要寻找的答案:)
除了要查看哪些列以获取其数据外,它们与数据项的外观之间没有硬链接。您不必具有可见列即可在数据项上具有ID。
, 万一有人还在寻找它,我已经找到了一种方法……虽然不是很优雅,但确实可以。按照Simon的建议,将Id列添加为网格中的最后一个。将cssClass和headerCssClass都设置为\“ display:none!important \”,并将width,minWidth和maxWidth列选项设置为0,如下所示:
var columns = [
{ id: \"MyColumnId\",name: \"My Column\",field: \"MyColumnData\",width: 100},{ id: \"Id\",name: \"Id\",field: \"Id\",width: 0,minWidth: 0,maxWidth: 0,cssClass: \"reallyHidden\",headerCssClass: \"reallyHidden\" }
];
和的CSS是:
.reallyHidden {显示:无!重要;}
希望能有所帮助。
, 但是,无法解决此问题,您可以将width / maxWidth设置为1,将名称设置为空字符串,然后将该列放置在所有其他列的最右侧。像这样(示例在coffeescript中,如果您不确定语法,请使用http://js2coffee.org/):
columns = [
... some columns ...
{
id:\"hidden\"
name:\"\"
field:\"id\"
sortable:\"true\"
width: 1
maxWidth: 1
minWidth: 1
unselectable: true
formatter: (row,cell,val,columnDef,dataContext) ->
\"<div style=\'display: none;\'>#{val}</div>\"
}
]
, 对于这种问题,我使用了两个数组。一个用于显示,另一个用于columnPicker。就是这样
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,width: 234},{id: \"email\",name: \"Email\",field: \"email\",width: 234}
);
hid_columns.push(
cb_selector.getColumnDefinition(),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);
, 在coloumns.push({id:id,name:name,Hidden:true})中
//隐藏可确保在绑定网格时删除列
, 我意识到这是一个古老的问题,但是正确的方法是使用dataProvider并利用getItemMetaData提供不一定要显示的信息。
选择行时,可以调用grid.getItemMetaData(cell.row)获得所需的额外信息。预计getItemMetaData返回一个描述行和单元格级别metaData的jsonObject。
这是描述它的文档。
https://github.com/mleibman/SlickGrid/wiki/Providing-data-to-the-grid
, 寻找有关此问题的答案后,我找到了一种解决方法,可以完全隐藏列并仍然保存数据。
我最初的问题是我需要隐藏网格的ID列,因此基本上我通过创建具有name属性的唯一列来隐藏ID列,而不指定其他任何内容,然后创建了我期望的列。
, 今天我遇到了同样的问题,并且我正在处理纯数组数据。如果将值添加到数据数组的末尾,但未在columns-array中定义它们,则该数据存在并且可以在事件中使用它,但未显示。
例:
new Slick.Grid({
document.getElementById(\'grid\'),[
[1,2,3,1],[1,2],3],4],5]
],headers: [
{
field: \'0\',id: \'foo\',name: \'foo\'
},{
field: \'1\',id: \'bar\',name: \'bar\'
},{
field: \'0\',id: \'baz\',name: \'baz\'
}
],{}
);
如您在代码中所见,我为网格提供了第4个值,没有列定义。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。