Java 如何启用/禁用编辑Vaadin网格中的特定列?
我有一个Vaadin网格(myGrid),其中我使用Java 如何启用/禁用编辑Vaadin网格中的特定列?,java,vaadin,Java,Vaadin,我有一个Vaadin网格(myGrid),其中我使用 myGrid.setEditorEnabled(true); 但是,我不允许编辑特定列中的单元格。我该怎么做?我能想到的唯一解决方法是拦截对模型bean的调用,并向用户抛出一些异常/显示消息。有更好的方法吗?使用: myGrid.setEditorEnabled(true) 不会自动使每个单元格都可编辑。您需要为每个可编辑列指定一个活页夹。如下列文件所述: 编辑器基于绑定器,用于将数据绑定到 编辑(…)对于每个应可编辑的列,应使用绑定 在编
myGrid.setEditorEnabled(true);
但是,我不允许编辑特定列中的单元格。我该怎么做?我能想到的唯一解决方法是拦截对模型bean的调用,并向用户抛出一些异常/显示消息。有更好的方法吗?使用:
myGrid.setEditorEnabled(true)代码>
不会自动使每个单元格都可编辑。您需要为每个可编辑列指定一个活页夹
。如下列文件所述:
编辑器基于绑定器,用于将数据绑定到
编辑(…)对于每个应可编辑的列,应使用绑定
在编辑器活页夹中创建,然后将列配置为
使用该绑定
因此,如果您想禁止在特定列中进行编辑,那么就不要为其提供活页夹。看看我的解决方案
indexedContainer = new IndexedContainer();
indexedContainer.addContainerProperty("name",String.class,"");
//....
//in add item process do the following
Item item = indexedContainer.getItem(indexedContainer.addItem());
item.getItemProperty("name").setValue(myModel.getName());
item.getItemProperty("name").setReadOnly(true);
//...
myGrid.setContainerDataSource(container);
就这样
我认为还有另一种方法,但我没有测试它
myGrid.getColumn("name").setEditable(false)
希望这对您有所帮助我正在使用Vaadin 7。我认为活页夹是Vaadin 8的特色。但是,看起来我可以使用Vaadin 7中的编辑器字段。。。