在Popover中使用SearchField继续发送'选择'事件和重新出现Popover

时间:2017-02-15 04:31:02

标签: sapui5

我正在为这样的popover使用自定义控件:

sap.ui.define([
  "sap/m/Popover"
], function(Popover) {
  "use strict";

  return Popover.extend("name of controle", {
    init: function() {
      Popover.prototype.init.apply(this, arguments);
        this.oPopup.setAutoClose(false);
    },

    renderer : "sap.m.PopoverRenderer"

  });
});

我正在使用这个popover自定义控件:

<core:FragmentDefinition
  xmlns="sap.m"
  xmlns:core="sap.ui.core"
  xmlns:path="path to custom popover"
>
  <path:CustomPopover
    placement="Left"
    contentHeight="80%"
    contentWidth="25%"
  >
    <path:content>
      <!-- xmlview that has search field in it -->
    </path:conent>
  </path:CustomPopover>
</core:FragmentDefinition>

现在,如果我使用此片段创建Popover,那么select事件将继续为该搜索字段发出。

  

2017-02-15 09:53:47.456659事件被解雇:&#39;选择&#39;在元素sap.m.SearchField #__ field0 - sap.ui.core.UIArea

即使在连续发布事件之后,此弹出窗口在chrome中工作正常,但在Internet Explorer中,它仍在重新渲染,因此无法使用它。如何解决这个问题?

1 个答案:

答案 0 :(得分:0)

如果您Character Conversion functions,则无需创建自定义控件。 just want to disable auto closing

  

当用户点击或点击弹出窗口外或弹出窗口中的操作时,弹出窗口将关闭。您可以使用false属性阻止此操作。

默认值为true。将其设置为sap.ui.getCore().attachInit(() => sap.ui.xmlview({ viewContent: `<mvc:View xmlns:mvc="sap.ui.core.mvc" xmlns="sap.m" controllerName="MyController" > <Button class="sapUiTinyMargin" text="Open Popover" press=".onPress" > <dependents> <Popover id="myPopover" modal="{/modal}" title="Modal" contentWidth="10rem" > <HBox justifyContent="Center"> <Switch state="{/modal}"/> </HBox> </Popover> </dependents> </Button> </mvc:View>`, controller: sap.ui.controller("MyController", { onPress: function(event) { this.byId("myPopover").openBy(event.getSource()); }, }), async: true, }).loaded().then(view => sap.ui.require([ "sap/ui/model/json/JSONModel", ], JSONModel => view.setModel(new JSONModel()).placeAt("content"))));,以便在单击块布局(深色背景)区域时,Popover不会自动关闭。

演示

&#13;
&#13;
<script id="sap-ui-bootstrap"
  data-sap-ui-libs="sap.ui.core, sap.m"
  data-sap-ui-preload="async"
  data-sap-ui-theme="sap_belize"
  src="https://openui5.hana.ondemand.com/resources/sap-ui-core.js"
></script><body id="content" class="sapUiBody"></body>
&#13;
modal
&#13;
&#13;
&#13;

json也可以在IE 11中使用。