【问题标题】:AppMaker - Display only Filtered Items in TabsAppMaker - 仅在选项卡中显示过滤的项目
【发布时间】:2018-10-12 07:30:50
【问题描述】:

我对 AppMaker 还是很陌生,并且在处理数据源绑定和处理结果方面有点挣扎。

我想知道是否有办法在每个选项卡中仅显示来自数据源的过滤结果。我会更好地解释。 我有一个包含主题、正文和类型字段的 EmailTemplate 数据模型。 在 UI 中,我添加了一个选项卡容器,并希望在每个选项卡中仅显示与所选选项卡匹配的电子邮件模板 (item.Type === selectedTab)。

我设法使用带有链接到 onChangeTab 事件的参数的服务器端查询过滤器来做到这一点,并且工作正常但是,它是服务器端的,所以每次选择一个新选项卡时,它都必须返回数据并过滤它并返回需要几秒钟的数据,让应用看起来很慢。

我想知道是否有办法只在按上述条件过滤的每个选项卡中显示数据。因此,保留整个结果列表,但只显示与选项卡匹配的结果。我注意到有一个选项可以过滤从数据源返回的项目,但它似乎并没有改变显示的数据。

有什么想法吗?

谢谢!

【问题讨论】:

  • 一些需要考虑的事情。如果您在更改选项卡时应用过滤器客户端,您可能希望通过 datasource.query.clearFilters() 清除过滤器,然后设置新过滤器,然后通过 datasource.load() 重新加载数据源。然而,这仍然需要一点时间,并在 UI 中引入您所描述的“滞后”。我相信你在上一段中描述的“它似乎没有改变显示的数据”是因为你没有重新加载你的数据源。或者,为每个选项卡创建一个单独的数据源并在服务器上过滤结果并自动加载数据。
  • 抱歉,马库斯的评论回来晚了。如果我没记错的话,您所描述的仍然是在应用新过滤器后返回服务器以重新加载数据。我所说的更像是 Gsheets 或 Excel 中的过滤器,其中数据仍然存在,只是被隐藏了。

标签: google-app-maker


【解决方案1】:

我过去确实这样做过(但后来切换到一组单选按钮,在值更改时重新选择项目,因为我的每个选项卡都显示非常相似 信息)。

IIRC,我为标签小部件的 onSelectedTabChange 所做的正是您所描述的:

widget.datasource.unload();
widget.datasource.query.filters._key._equals = null;
widget.datasource.query.filters.Type._equals = selectedTab;
widget.datasource.load();

我同意这不是很快,而且很麻烦,因为卸载使表格在等待新数据出现时变为空白。我没有更好的主意,例如对数据源中的内容进行后过滤。这可能会很困难,因为您的内存过滤器可能必须从数据库中加载大量数据才能找到一些(或没有)与您所需的过滤器匹配的条目。

【讨论】:

  • 嗨,Printer 先生,对于迟来的回归也深表歉意!你是对的!我想可能不得不加载大量数据并在内存中过滤它不是一个好习惯。
猜你喜欢
  • 1970-01-01
  • 2019-02-15
  • 1970-01-01
  • 2014-04-27
  • 1970-01-01
  • 2012-03-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多