我有一本书数据源。一本书有很多作者。该集合显示在 book-edit-view 的网格中。现在我想按作者姓名排序。在 collectionDatasource 属性中,我将 sortable 设置为 true。
我该怎么做?
最佳答案
如果我理解正确,您正在使用 绑定(bind)表格和书籍作者。嵌套数据源 , 像那样:
<datasource id="bookDs"
class="com.company.test.entity.Book"
view="book-edit-view">
<collectionDatasource id="authorsDs" property="authors"/>
</datasource>
如果是这样,首先,确保 Book 实体具有有序类型的 Authors 属性集合( List 或 LinkedHashSet )。如果不是,您可以在 Studio 中更改集合类型或在 Book 实体中手动更改。
然后表格列变为可排序 - 当用户单击列标题表时,将对行进行相应的排序。此外,CUBA 平台会将排序设置保存为用户设置 - 因此下次用户打开屏幕表时将进行排序。
为了在默认情况下启用图书作者排序,您可以在 ORM 级别进行。在 Studio 打开实体 Book 中,点击 authors 属性并设置值 姓名 在 通过 订购属性属性面板中的字段。这将确保 Book 实体的任何实例都具有按名称排序的作者。
关于vaadin - 在 Cuba 框架中对嵌套的 collectionDatasource 进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37340003/