如何在不清除所有过滤器的情况下清除特定过滤器?
How can I clear a specific filter without clearing all filters?
背景:
我正在创建一个应用程序,用于存储公司员工参加 table 的培训记录。我想根据培训名称 and/or 员工姓名过滤 table 的行。我能够弄清楚这第一部分,并且能够创建一个按钮来清除所有过滤器并使用 clearFilters() 函数重新加载整个 table。
问题:
我想创建两个清除过滤器选择的按钮,一个 ("All Trainings") 用于培训名称,另一个 ("All Employees") 用于员工名称。更清楚地说,当我单击 "All Trainings" 按钮时,我想清除培训名称上的过滤器,而不是员工名称上的过滤器。一旦我有一个 table 和我想要过滤的多个字段,并且我想导航 table 而不必每次都重置所有字段,这将变得有用。
我尝试在 Google App Maker 上搜索可用的功能,但似乎没有任何东西可以解决我的问题。有什么建议吗?
我相信有更好的方法可以做到这一点,所以您可能想等待更聪明的人插话,但我相信您可以让按钮清除过滤器,但重新应用新过滤器。
所以对于我的情况,我让 table 对列为 "Complete" 的项目进行筛选,以便在用户打开页面时隐藏这些项目。
然后,当用户过滤另一个字段并想要清除该搜索时,我不希望 "Complete" 项重新出现(这是我刚刚使用 clearFilters() 函数时发生的情况。所以我的解决方法是让清除按钮实际上清除过滤器,但应用原始 "Complete" 过滤器。
所以对于我的 OnClick 操作,对于我的 "Clear Button" 我有:
widget.datasource.query.clearFilters();
widget.datasource.load();
app.closeDialog();
var datasource = app.datasources.TestModel;
datasource.query.filters.Status._notContains = 'Complete';
datasource.load();
widget.datasource.load();
app.closeDialog();
可能是redundant/unnecessary。
您能否在您的 onClick 处理程序中简单地执行 3 个步骤?
(1) 清除所有过滤器
(2)设置员工姓名过滤器
(3)加载数据
来自关于数据源的参考:
https://developers.google.com/appmaker/models/datasources#query_datasources
Like field filters, assigning null to a relation filter property clears that restriction.
所以,像这样:
datasource.query.filters.Employee._contains = null;
datasource.load();
应该适合你。
背景:
我正在创建一个应用程序,用于存储公司员工参加 table 的培训记录。我想根据培训名称 and/or 员工姓名过滤 table 的行。我能够弄清楚这第一部分,并且能够创建一个按钮来清除所有过滤器并使用 clearFilters() 函数重新加载整个 table。
问题:
我想创建两个清除过滤器选择的按钮,一个 ("All Trainings") 用于培训名称,另一个 ("All Employees") 用于员工名称。更清楚地说,当我单击 "All Trainings" 按钮时,我想清除培训名称上的过滤器,而不是员工名称上的过滤器。一旦我有一个 table 和我想要过滤的多个字段,并且我想导航 table 而不必每次都重置所有字段,这将变得有用。
我尝试在 Google App Maker 上搜索可用的功能,但似乎没有任何东西可以解决我的问题。有什么建议吗?
我相信有更好的方法可以做到这一点,所以您可能想等待更聪明的人插话,但我相信您可以让按钮清除过滤器,但重新应用新过滤器。
所以对于我的情况,我让 table 对列为 "Complete" 的项目进行筛选,以便在用户打开页面时隐藏这些项目。
然后,当用户过滤另一个字段并想要清除该搜索时,我不希望 "Complete" 项重新出现(这是我刚刚使用 clearFilters() 函数时发生的情况。所以我的解决方法是让清除按钮实际上清除过滤器,但应用原始 "Complete" 过滤器。
所以对于我的 OnClick 操作,对于我的 "Clear Button" 我有:
widget.datasource.query.clearFilters();
widget.datasource.load();
app.closeDialog();
var datasource = app.datasources.TestModel;
datasource.query.filters.Status._notContains = 'Complete';
datasource.load();
widget.datasource.load();
app.closeDialog();
可能是redundant/unnecessary。
您能否在您的 onClick 处理程序中简单地执行 3 个步骤? (1) 清除所有过滤器 (2)设置员工姓名过滤器 (3)加载数据
来自关于数据源的参考:
https://developers.google.com/appmaker/models/datasources#query_datasources
Like field filters, assigning null to a relation filter property clears that restriction.
所以,像这样:
datasource.query.filters.Employee._contains = null;
datasource.load();
应该适合你。