在 Cuba Framework 中对嵌套的 collectionDatasource 进行排序

Sorting a nested collectionDatasource in Cuba Framework

我有一个 bookDatasource。一本书有很多作者。该集合显示在图书编辑视图的网格中。现在我想按作者姓名排序。在 collectionDatasource 属性中,我将 sortable 设置为 true。 我该怎么做?

如果我没理解错的话,您正在使用 嵌套数据源 绑定 Table 和图书作者,就像这样:

    <datasource id="bookDs"
                class="com.company.test.entity.Book"
                view="book-edit-view">
        <collectionDatasource id="authorsDs" property="authors"/>
    </datasource>

如果是这样,首先,确保 Book 实体具有 collection of Authors 有序类型属性(ListLinkedHashSet ).如果不是,您可以在 Studio 中更改 collection 类型或在 Book 实体中手动更改。

然后 table 列变成 sortable - 当用户点击列 header 时 table 将相应地对行进行排序。此外,CUBA 平台会将排序设置保存为用户设置 - 因此下次用户打开屏幕时 table 将被排序。

为了默认启用图书作者排序,您可以在 ORM 级别上进行。在 Studio 打开实体 Book 中,单击 authors 属性并在属性属性面板的 Order by 字段中设置值 name。这将确保 Book 实体的任何实例都有按名称排序的作者。