所以我设置了一个用户将用作项目任务列表的模型/表。我希望这样当他们将项目的状态(模型中的一个字段)更改为已完成或已取消时,它将被隐藏。
这样他们只处理活动条目。但我还希望他们能够在需要时查看这些隐藏(存档)的项目。
我将以下代码添加到表
的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();
它有效,但我觉得可能有更好/更优雅的方法来实现这一目标。特别是因为它看起来应用程序必须加载然后数据,然后过滤它(这导致较慢的负载)。 (我想我也可能会有一些冗余的代码)
此外,我觉得我错过了一些我的语法,因为我无法过滤掉已完成和已取消。
感谢您的帮助!
答案 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();