We recommend to invest care and energy in good message content:
For showing messages to the user that are related to the currrent page, you have several possible controls. Each of these offers a different type of interaction from the user. Choose the control that fits best in you interaction pattern.
sap.m.MessageBox.sap.m.Dialog control and set the type to
sap.m.DialogType.Message. MessageBox is a static class, a sap.ui.require("sap.m.MessageBox"); statement must be
explicitly executed before the class can be used.
// load MessageBox asynchronously
sap.ui.require(['sap/m/MessageBox'], function(MessageBox) {
// and display message
MessageBox.show(
"This message should appear in the message box.", {
icon: MessageBox.Icon.INFORMATION,
title: "My message box title",
actions: [MessageBox.Action.YES, MessageBox.Action.NO],
onClose: function(oAction) { / * do something * / }
}
);
});sap.m.MessageToast API.
// add MessageToast as import
sap.ui.define([..., 'sap/m/MessageToast', ...], function(..., MessageToast, ...) {
...
// show toast when needed
MessageToast.show("Item deleted");
...
});MessageStrip enables the embedding of short application-related messages in the application. There are four types
of messages and each is color-coded and has an icon corresponding to its type: Information,
Success, Warning and Error.
// add MessageStrip and MessageType as imports
sap.ui.define([..., 'sap/m/MessageStrip', 'sap/ui/core/library', ...], function(..., MessageToast, coreLibrary, ...) {
...
var MessageType = coreLibrary.MessageType;
var msg = new MessageStrip({
id: "importantMessage",
text: "This is a sample text",
type: MessageType.Error,
showIcon: true,
showCloseButton: true
});
...
});The MessageStrip is useful when you want to display short notices, for example of finished background tasks, that
do not require further user interaction.
MessagePopover shows a summarized list of different types of messages
(errors, warnings, success and information). It provides a handy and systemized
way to navigate and explore details for every message. You can find more
information on MessagePopover
here.
MessageView shows the same type of summarized messages list as the
MessagePopover. The main difference between the controls is
that the MessageView can be embedded in any suitable control
(for example a Dialog). This allows the message summary to be
shown in any part of the application. As of
version 1.46, MessagePopover has been refactored to
automatically instantiate and use a MessageView for its
content. All
other controls need to instantiate it themselves. Here is a sample for a
MessageView in a Dialog:
...
sap.ui.require(['sap/m/Dialog', 'sap/m/MessageView', 'sap/m/Bar', 'sap/m/Button', 'sap/m/Text'],
function(Dialog, MessageView, Bar, Button, Text) {
// create message view
var oMessageView = new MessageView({
showDetailsPageHeader: false,
itemSelect: function () {
that._oBackButton.setVisible(true);
},
items: {
path: "/",
template: oMessageTemplate
}
});
...
var oDialog = new Dialog({
title: "Messages",
resizable: true,
content: oMessageView,
state: 'Error',
beginButton: new Button({
press: function () {
oDialog.close();
},
text: "Close"
}),
customHeader: new Bar({
contentMiddle: [
new Text({ text: "Error"})
],
contentLeft: [
oBackButton
]
}),
contentHeight: "300px",
contentWidth: "500px",
verticalScrolling: false
});
oDialog.open();
...
}
);
...There is no dedicated UI control available in sap.m designed to show messages
related to a particular element on a page. We recommend to use the
sap.ui.core.HTML control to show these error messages
'somewhere close to the input' or use some kind of overlay. Consider that the user
will have the on screen keyboard open which might hide messages. Putting the message
above an input field could help.
You can set the ValueState of the sap.m.Input control to Error to indicate that the
content is not correct.
SAPUI5 Mobile does not support multiple messages at the same time. Mobile Designs recommend to be 'more sparse' with messages, that is, only show one message at a time. This can also be achieved by combining and reducing multiple messages.