Vaadin 网格允许定义为可编辑
grid.setEditorEnabled(true);
这使得所有可见的列都可以编辑。但是我不希望用户编辑特定的列,但似乎可编辑是全有或全无。
我发现的下一个最佳解决方案是定义一个带有禁用编辑器的编辑器字段,这几乎可以解决问题,但用户仍然能够选择文本并移动光标(但该字段不再可编辑)。
Grid.Column nameColumn = grid.getColumn("fullName");
nameColumn.setHeaderCaption("Full Name");
nameColumn.setEditorField(getNoEditableTextField());
...
private Field<?> getNoEditableTextField() {
TextField noEditableTextFiled = new TextField();
noEditableTextFiled.setEnabled(false);
return noEditableTextFiled;
}
我认为不能使用 Label,因为它不是 Field。
是否有更好的选择来实现这一目标?
编辑:正如 aakath 所说,有一种方法可以实现此目的,但不能编辑列,但这样做时,单元格值会在您编辑行时消失,这是不可取的。
最佳答案
您是否尝试在列上调用 setEditable(false)
方法?我相信当项目编辑器处于 Activity 状态时,它应该使该字段不可编辑。
grid.getColumn("fullName").setEditable(false);
关于java - 如何在 Vaadin 网格中仅使某些列可编辑?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30887082/