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

时间:2018-04-25 02:58:40

标签: google-app-maker

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

网页
Datasource = 指标
表格
Datasource = 指标 [one]: MetadataText [很多](关系)

表格需要根据另一个名为 MetadataField 模型中的字段进行排序与 MetadataText 的一对多关系。

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

我正在使用Google云端硬盘表。

1 个答案:

答案 0 :(得分:0)

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

select relation sorting

但似乎您希望按相关记录对相关记录进行排序。在这种情况下,App Maker将不会成为你的朋友...但是javascript将是!由于App Maker加载 所有 相关记录,您可以放心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))中起作用。如果您想让用户通过单击表的标题对相关记录进行排序,您需要自己实现该逻辑。所以......所有这些麻烦都让我们找到了替代解决方案!如果我们解耦相关记录并为它们引入分离的数据源会怎么样?拥有它你几乎可以毫不费力地使用App Maker表的全部功能(排序/分页)。您可以在Project Tracker模板ViewProject页面中查看实现示例。