我正在为这样的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中,它仍在重新渲染,因此无法使用它。如何解决这个问题?
答案 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不会自动关闭。
<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;
json
也可以在IE 11中使用。