首页 文章

如何对其数据源为关系的表进行排序

提问于
浏览 81
0

我有一个带有表的页面,其数据源是一个关系,需要根据另一个模型的字段进行排序:

Page
数据源=指标
Table
Datasource = Indicators [one]:MetadataText [many](关系)

Table 需要根据另一个名为 MetadataField 的模型中的字段进行排序,该字段与 MetadataText 具有一对多的关系 .

我有 MetadataField 数据源排序 . 但是 Table 中的内容以随机顺序出现 . 当我第一次访问应用程序时, Table 按照记录加载的顺序排序 . 查看一些记录后,记录的排序会发生变化并不断变化 .

我正在使用Google Cloud 端硬盘表 .

1 回答

  • 0

    您可以通过属于相关记录本身的其中一个字段轻松地对相关记录进行排序,但只能一次(您将收到从服务器排序的那些记录) .

    select relation sorting

    但似乎您希望按相关记录对相关记录进行排序 . 在这种情况下,App Maker不会成为你的朋友...但javascript将会是!由于App Maker加载 all 相关记录,您可以安全地sort them on client using javascript

    indicatorsDatasource.load(function() {
      indicatorsDatasource.items.forEach(function(indicator) {
        indicator.MetadataTexts.sort(function(a, b) {
           return /* here goes your sorting logic */;
        });
      });
    });
    

    如果页面上有n个指标,并且每个指标都有m个相关的MetadataTexts,它将在O(n * m * log(m))中工作 . 如果要通过单击表's header, you' ll让用户对相关记录进行排序,则需要自己实现该逻辑 . 所以......所有这些麻烦都让我们找到了替代解决方案!如果我们解耦相关记录并为它们引入分离的数据源会怎么样?几乎不费吹灰之力就完成了你的表(排序/分页) . 您可以在Project Tracker模板ViewProject页面中查看实现示例 .

相关问题