【问题标题】:SAPUI5 when to bind an initial filter to a controlSAPUI5 何时将初始过滤器绑定到控件
【发布时间】:2017-05-10 19:04:41
【问题描述】:

我希望将 xml 视图的控制器中的过滤器动态绑定到视图中的控件。我知道该怎么做,但我一开始没有找到合适的方法。

例如我在视图上定义了一个 ComboBox,并为 oData 模型(在视图中)提供了一个绑定路径。然后在控制器中,我希望在 ComboBox 的项目上设置一个拟合器。我在视图的 onInit 中尝试过,但尚未在 ComboBox 对象中设置绑定。

我通过延迟加载解决了这个问题,并在“loadItems”事件中设置了过滤器。有没有办法通过不使用延迟加载来做到这一点?没有找到合适的事件或标准挂钩。

谢谢。

【问题讨论】:

标签: odata sapui5


【解决方案1】:

所以绑定在 oninit() 中不可用...你第一次在哪里创建绑定?第一次创建绑定时,您还可以应用初始过滤器。

例如,在 onInit 内部的控制器中,您调用 this.byId("myComboBox") 来获取控件。然后调用 oComboBox.bindItems({...}) 并传递初始过滤器。所以 bindItems(...) 也接受过滤器。如果过滤器发生变化,您可以简单地调用 oComboBox.getBinding("items").filter(...) 来更新过滤器。查看worklist app tutorial了解一些详细信息...

顺便说一句,您也可以直接在 XMLView 中直接指定包含过滤器的绑定。详情请见我的answer here

【讨论】:

  • 绑定在 XML 视图中定义。用例有点具体。我希望使过滤器值更灵活,并从配置文件中读取它。它还用于应用程序中的不同视图。所以我避免了 XML 过滤器定义。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-08-10
  • 1970-01-01
相关资源
最近更新 更多