在表格中隐藏“已完成或已取消的项目”的最佳方法是什么?

时间:2017-02-21 22:58:19

标签: google-app-maker

所以我设置了一个用户将用作项目任务列表的模型/表。我希望这样当他们将项目的状态(模型中的一个字段)更改为已完成或已取消时,它将被隐藏。

这样他们只处理活动条目。但我还希望他们能够在需要时查看这些隐藏(存档)的项目。

我将以下代码添加到表

的onAttach选项中
var datasource = app.datasources.Projects;
 datasource.query.filters.Status._notContains = 'Completed';
 datasource.load();

然后我有一个包含以下代码的按钮,以便他们可以看到隐藏/存档的项目:

widget.datasource.query.clearFilters();
widget.datasource.load();
app.closeDialog();
var datasource = app.datasources.Projects;
 datasource.query.filters.Status._contains = 'Completed';
 datasource.load();

它有效,但我觉得可能有更好/更优雅的方法来实现这一目标。特别是因为它看起来应用程序必须加载然后数据,然后过滤它(这导致较慢的负载)。 (我想我也可能会有一些冗余的代码)

此外,我觉得我错过了一些我的语法,因为我无法过滤掉已完成和已取消。

感谢您的帮助!

2 个答案:

答案 0 :(得分:1)

如果表格中有一页项目且项目不多,则可以在客户端进行过滤。例如,您可以使用绑定表达式根据某些逻辑向行添加“projectHidden”样式,然后使用CSS更改行的可见性。

对于您的第二个代码块,没有理由清除过滤器,加载,设置过滤器然后再次加载。只需清除过滤器,设置新过滤器,然后调用加载。此外,如果您手动控制查询加载,则可能需要取消选中数据源中的设置以自动加载数据。

答案 1 :(得分:0)

var datasource = app.datasources.Projects;
 datasource.query.filters.Status._notEquals = 'Completed';
 datasource.query.filters.Status._notEquals = 'Cancelled';
 datasource.load();