我用数据源A和B创建了一个带有两个表的应用程序 .
B是与A的关系(通过公共Id字段) .
所以我想要显示表A,在它下面,表B.
理想情况下,只需单击A中的行即可
a)选择该行,然后b)更新表B以显示数据源B中的相关项 .
我无法通过appmaker自动完成此操作,但我可以在表A上添加onload的代码,如下所示:
app.datasources.A.query.filters.B.Id._equals = widget.datasource.item.Id;
app.datasources.B.load();
并且在tableARow本身的onClick事件中,我还添加了:
app.datasources.A.selectIndex(widget.parent.childIndex);
app.datasources.B.query.filters.B.Id._equals = widget.datasource.item.Id;
app.datasources.CurrentValuation.load();
除了TableA实际上不会选择我在UI中单击的行(所选行始终是第二行)之外,这大部分都有效 . 数据源为tableB选择正确的项目,但UI显示TableA中选择的错误行 .
我怀疑我要么需要调用另一种方法,要么可能有一种更好的方法而且我是一个傻瓜 . 无论哪种方式,谢谢你的答案!
1 回答
理想情况下,TableA数据源应为“A”,表B应为“A:B(关系)” . 您还需要在A数据源中预取B.如果您在表数据源上设置关系,那么您将无法在该表上进行 Headers 排序或分页 .
或者,如果您想基于TableA项过滤TableB,那么我将在A数据源onItemChange事件中设置您的过滤器,如下所示:
如果你想坚持你拥有的东西,那么从TableA中删除onLoad代码并将表行onClick事件的代码更改为:
这应该可以解决您当前的问题,您也可以随时探索其他选项 .