Message Box

From Documentation

In addition to composing your own window for displaying a message, ZK provides a simple utility: Messagebox[1]. For example,

Messagebox.show("The file has been removed successfully.");

DrMessagebox.png

You could specify a different icon for different scenarios, such as alerting an error:

Messagebox.show("Unable to delete the file", null, 0, Messagebox.ERROR);

DrMessagebox-error.png

Another typical use is to confirm the users for a decision, such as

Messagebox.show("Are you sure you want to remove the file?", null,
   Messagebox.YES+Messagebox.NO, Messagebox.QUESTION,
   new EventListener<MouseEvent>() {
      public void onEvent(MouseEvent event) {
          if (Messagebox.ON_YES.equals(event.getName()))
             ;//delete the file
      }
   });

ZK will close the message box when a user clicks a button, you don't need to call a method to close it.

Notice that the invocation of show() returns immediately without waiting for a user's clicking[2].

There are a lot more options for a message box, such as the button's position and the label. Please refer to ZK Component Reference: Messagebox and Messagebox for more information.


  1. If you are using zscript, there is a shortcut called alert as follows
    <button label="Show" onClick='alert("The file has been removed successfully.")'/>
    
  2. If you enable the event thread, the invocation will be stalled until the user clicks a button. It is easier but threading is not cheap. For more information, please refer to the Event Threads section.

Close on Exceptions

When an exception happens inside a message box's event listener and is handled by a ZK error page. The message box doesn't disappear, and it might cover the information on the error page. To avoid this, you can:

  • create a modal window in an error page, then the modal window will be on top of the message box.
  • catch an exception inside a message box's event listener and detach the message box.




Last Update : 2024/02/06

Copyright © Potix Corporation. This article is licensed under GNU Free Documentation License.