在Vaadin 8中,我有一个Grid
,其中的列和行使用jsondata
从setDataProvider
填充。现在,我有一个edit
按钮,单击该按钮后,用户应该可以在Grid
中编辑(一些)列。
答案 0 :(得分:1)
在Vaadin 8中,有多种方法可以将编辑合并到Grid中。
行编辑器有一个内置功能,也可以在无缓冲模式下使用。这并不等同于整个列都是可编辑的,但是可以很好地模仿它,而您可以使用Binder设置字段,验证等。还有一个附加组件,可以帮助keyboard navigation使用无缓冲的编辑器。
或者,您可以使用Grid Renderers Collection add-on,它提供带有可编辑事件等的可编辑渲染器集。这正是您在寻找的,面向列的编辑。当只有少数列可编辑时,此方法很有用。
https://vaadin.com/directory/component/grid-renderers-collection-for-vaadin7
如果您广泛使用渲染器,浏览器将可以渲染更多的小部件,UI可能比使用例如无缓冲模式下的行编辑器。这在很大程度上取决于您的应用程序和用例。我建议研究多种方法,然后选择最适合您的方法。
第三种方法是使用ComponentColumn功能,请参见Vaadin documentation中的Component Renderer一章。这比实现自定义渲染器要容易一些,但是会增加一些开销。