ADF11g-028:Resetting and clearing form fields while cancelling an ADF popup

转自 http://hazem-adf-tips.blogspot.jp/2012/06/resetting-and-clearing-form-fields.html

Suppose the popup has input form fields to enter data with say OK and Cancel buttons, and when the user enters data and clicks on 'Cancel' button, we need to close the popup and reset all values entered in the popup's fields. If you don't reset the values, if you invoke the same popup again, it'll show the same previously entered values in the form which is unwanted.

1. Set popup's 'contentDelivery' property to 'lazyUncached'. Setting this property won't cache the data entered and won't restore the previously entered values. This is highly recommended to set contentDelivery="lazyUncached" for better performance as the popup will be loaded only on invocation but not at the time of page loading.

<af:popup id="popup1"
                  contentDelivery="lazyUncached">

 2. If the step1 doesn't work, drop af:resetActionListener as a sub-element to 'Cancel' button in the popup. ResetActionListener will reset the form fields in the popup.
We can also call ResetActionListener programmatically in an actionlistener method as follows using javax public API.

public void saveSections(ActionEvent actionEvent) {
        UIComponent comp = actionEvent.getComponent();
        oracle.adf.view.rich.util.ResetUtils.reset(comp);
    }
3. If the step 3 doesn't work (the public API is not available in your Jdeveloper version), you have to use ADF internal API enven if it's discouraged. 

public void saveSections(ActionEvent actionEvent) {
        ResetActionListener ral = new ResetActionListener();
        ral.processAction(actionEvent);
    }



你可能感兴趣的:(ADF11g-028:Resetting and clearing form fields while cancelling an ADF popup)