背景:
我正在创建一个应用程序,用于存储公司员工参加培训的记录。我想根据培训名称和/或员工姓名过滤表格的行。我能够弄清楚第一部分,我能够创建一个清除所有过滤器的按钮,并使用clearFilters()函数重新加载整个表。
问题:
我想创建两个按钮,清除培训名称的过滤器选择一(“所有培训”)和员工姓名的一个(“所有员工”)。更清楚的是,当我点击“所有培训”按钮时,我想清除培训名称上的过滤器,而不是员工名称上的过滤器。一旦我有一个我想要过滤的多个字段的表,这将变得有用,我想要导航表而不必每次都重置所有字段。
我尝试搜索Google App Maker上提供的功能,但似乎没有什么能够解决我的问题。有什么建议吗?
答案 0 :(得分:2)
来自有关数据源的参考:
https://developers.google.com/appmaker/models/datasources#query_datasources
与字段过滤器一样,将null分配给关系过滤器属性会清除该限制。
所以,比如:
datasource.query.filters.Employee._contains = null;
datasource.load();
应该适合你。
答案 1 :(得分:0)
我确信有更好的方法可以做到这一点,所以你可能想等一个更智能的人进入,但我相信你可以让你的按钮清除过滤器,但重新申请一个新的过滤器。
因此,对于我的情况,我让表针对列为“完成”的项目执行过滤,因此当用户打开页面时会隐藏这些项目。
然后,当用户过滤另一个字段并希望清除该搜索时,我不希望重新出现“完整”项目(这就是我刚使用clearFilters()函数时发生的情况。所以我的解决方法是使清除按钮实际上清除过滤器,但应用原始的“完整”过滤器。
因此,对于我的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();
可能多余/不必要。
答案 2 :(得分:0)
您可以在onClick处理程序中简单地执行3个步骤吗? (1)清除所有过滤器 (2)设置员工姓名过滤器 (3)加载数据