SAPUI5 何时将初始过滤器绑定到控件
Posted
技术标签:
【中文标题】SAPUI5 何时将初始过滤器绑定到控件【英文标题】:SAPUI5 when to bind an initial filter to a control 【发布时间】:2017-05-10 19:04:41 【问题描述】:我希望将 xml 视图的控制器中的过滤器动态绑定到视图中的控件。我知道该怎么做,但我一开始没有找到合适的方法。
例如我在视图上定义了一个 ComboBox,并为 oData 模型(在视图中)提供了一个绑定路径。然后在控制器中,我希望在 ComboBox 的项目上设置一个拟合器。我在视图的 onInit 中尝试过,但尚未在 ComboBox 对象中设置绑定。
我通过延迟加载解决了这个问题,并在“loadItems”事件中设置了过滤器。有没有办法通过不使用延迟加载来做到这一点?没有找到合适的事件或标准挂钩。
谢谢。
【问题讨论】:
您不需要在绑定的“外部”进行。查看此页面 > help.sap.com/saphelp_nw74/helpdata/en/91/… 【参考方案1】:所以绑定在 oninit() 中不可用...你第一次在哪里创建绑定?第一次创建绑定时,您还可以应用初始过滤器。
例如,在 onInit 内部的控制器中,您调用 this.byId("myComboBox") 来获取控件。然后调用 oComboBox.bindItems(...) 并传递初始过滤器。所以 bindItems(...) 也接受过滤器。如果过滤器发生变化,您可以简单地调用 oComboBox.getBinding("items").filter(...) 来更新过滤器。查看worklist app tutorial了解一些详细信息...
顺便说一句,您也可以直接在 XMLView 中直接指定包含过滤器的绑定。详情请见我的answer here。
【讨论】:
绑定在 XML 视图中定义。用例有点具体。我希望使过滤器值更灵活,并从配置文件中读取它。它还用于应用程序中的不同视图。所以我避免了 XML 过滤器定义。以上是关于SAPUI5 何时将初始过滤器绑定到控件的主要内容,如果未能解决你的问题,请参考以下文章