FilterBar如何获取控件?

时间:2018-03-23 13:41:16

标签: sapui5

我在一个对话框中有一个过滤条(sap.ui.comp.filterbar.FilterBar),这个对话框已经打开了几次,我想在打开之前清除过滤条。

但是如果我使用filter.getAllFilterItems(),它会返回一个FilterItems列表,其中聚合“Controls”为空。

<fb:FilterBarclear="onClear" showClearOnFB="true" search="onSearch" advancedMode="true" filterBarExpanded="false">
    <fb:filterGroupItems>
        <fb:FilterGroupItem groupName="G1" name="BUKRS" label="{i18n>lblBukrs}">
           <fb:control>
               <Input type="Text" />
           </fb:control>
     </fb:FilterGroupItem>
</fb:FilterBarclear>

我找到了一个返回所有控件的内部方法(_retrieveCurrentSelectionSet),但我正在寻找更好的解决方案。

1 个答案:

答案 0 :(得分:0)

您可以从控制器中实例化片段,如:

var fragment = sap.ui.xmlfragment("fragmentId", "path.to.fragment.xml", controllerInstance); 

这将允许您随时抓取特定的片段控件,如下所示:

var fragmentControlInstance = sap.ui.core.Fragment.byId("fragmentId", "controlIdYouAreLookingFor"); 

然后应该可以做fragmentControlInstance.setValue(&#34;&#34;)或者你喜欢用来清除的任何内容

API文档也可以为您提供帮助。

编辑 - 拼写

编辑2 - 澄清

此处的文档也应该有所帮助:https://openui5.hana.ondemand.com/#/topic/8b325518a2ae48ee91eb2dacda1d1420.html