我正在 Vaadin 7 中做一个项目。
在我的项目中,我需要为 Treetable 中的特定列禁用列重新排序功能?
我真的在寻找像“setColumnReorderIds()”这样的函数。
是否有可能在 Vaadin 7 中做到这一点。
或者我需要用'ColumnReorderListener()'编写一些代码?
更新
此代码是将第一列设置为固定在 TreeTable 中。我想在树表的层次结构列中禁用重新排序。
public class CustomTreeTable extends TreeTable {
private static final long serialVersionUID = 1L;
private Object[] visibleColumns;
private KeyMapper<Object> columnIdMap = new KeyMapper<Object>();
@Override
public void paintContent(PaintTarget target) throws PaintException {
super.paintContent(target);
paintColumnOrder(target);
}
private void paintColumnOrder(PaintTarget target) throws PaintException {
visibleColumns = this.getVisibleColumns();
final String[] colorder = new String[visibleColumns.length];
int i = 0;
colorder[i++] = columnIdMap.key("Column 1"); // Logic to keep the first column fixed
for (Object colId : visibleColumns) {
if(!colId.equals("Column 1")) {
colorder[i++] = columnIdMap.key(colId);
}
}
target.addVariable(this, "columnorder", colorder);
}
}
更新 2
我尝试了奥斯卡所说的..
此外
paintColumnOrder(target).
我打电话
paintVisibleColumnOrder(target),
paintAvailableColumns(target),
paintVisibleColumns(target).
我只能停止对表头重新排序。但是,身体仍在重新排序。对这个问题有任何猜测吗?