Vaadin 14中如何获取Grid组件当前显示的列顺序
Vaadin Grid列顺序的保存与恢复差异说明
Vaadin 8 实现方案
在Vaadin 8中,可通过以下代码直接获取屏幕上按当前显示顺序排列的列列表:
String columnOrderPreference = ((List<Grid.Column>)grid.getColumns()).stream() .map(Grid.Column::getId) .collect(Collectors.joining(VALUE_SEPARATOR));
将得到的序列化字符串保存后,可调用以下方法恢复列顺序:
grid.setColumnOrder(columnOrderPreference.split(VALUE_SEPARATOR));
Vaadin 14 适配注意事项
Vaadin 14中该方案已无法直接生效,即便忽略getId()需替换为getKey()的接口变化,getColumns()返回的列表始终为列的初始添加顺序,而非用户调整后的实际显示顺序。
目前setColumnOrder(...)方法仍可使用,但参数规则有所调整,需传入由grid.getColumnByKey(columnKey)获取的列对象列表。但框架原生暂不支持获取按当前显示顺序排列的列列表,该能力对保存用户自定义列配置、用户再次访问页面时恢复个性化布局尤为重要。
内容的提问来源于stack exchange,提问作者Stephane Grenier
相关产品推荐
相关产品推荐

