Previous values are appearing after closing Modal Panel
ambrish_kumar Aug 10, 2009 12:55 PMHi Everyone,
I am rendering a modal panel on button click. Inside modal panel , I have entered some invalid values,so that the validation fails.
Now I close the modal panel,and again open it , this time the values entered are appearing for fields inside modal paenl.
Here is the code for rendering a modal panel.
<h:form id="showAddform"> <h:panelGrid columns="1" columnClasses="name" styleClass="panelGrid"> <a:commandButton id="addUserButton" value="#{messages.btnNewUser}" reRender="commonPanel" action="#{userAction.renderAddUser}" /> </h:panelGrid> </h:form>
and code for modal panel is ,
<a:outputPanel id="commonPanel"> <rich:modalPanel id="commonMp" styleClass="modalPanel" top="10" keepVisualState="#{userAction.showOverlay}" autosized="true" minWidth="600" minHeight="100" style="background-image: url('../img/overlayBg.png');background-repeat: repeat;background-color: transparent;" shadowDepth="#{messages.valShadowDepth}" headerClass="modalPanel-header" controlsClass="modalPanel-controls"> <f:facet name="header"> <h:outputText value="#{userAction.modelPanelHead}" /> </f:facet> <f:facet name="controls"> <h:graphicImage value="/img/closeButton.png" alt="X" border="0" style="cursor: pointer; cursor: hand;" onclick="Richfaces.hideModalPanel('commonMp')" > <a:support event="onclick" action="#{userAction.closeLayer}" ajaxSingle="true" disableDefault="true" eventsQueue="closeLayerUserQueue" /> </h:graphicImage> </f:facet> <h:panelGrid styleClass="modalPanel-panelGrid"> <h:message styleClass="message" for="commonPanel" style="color:red;"/> <h:form> <h:panelGrid columns="1" columnClasses="name" rendered="#{userAction.formToLoad=='addUserForm'}" styleClass="panelGrid"> <s:div styleClass="modalPanel-panelGrid-container-div"> <h:panelGrid columns="1" border="0" columnClasses="formLabel,formValue" rowClasses="formLabel"> <s:decorate id="userTypeDecoration" template="../layout/edit.xhtml"> <ui:define name="label">#{messages.lblUserType}</ui:define> <h:selectOneMenu value="#{userBean.userType}" required="true" requiredMessage="Value is required"> <s:selectItems value="#{userAction.userTypes}" var="cs" label="#{cs.strUserType}" noSelectionLabel="#{messages.defaultListItem}" /> <s:convertEntity /> </h:selectOneMenu> </s:decorate> </h:panelGrid> <h:panelGrid columns="2" border="0" columnClasses="formLabel,formValue" rowClasses="formLabel"> <s:decorate id="nameDecoration" template="../layout/edit.xhtml"> <ui:define name="label">#{messages.lblUserName}</ui:define> <h:inputText id="name" value="#{userBean.strUserName}" required="true" requiredMessage="Value is required"/> </s:decorate> </h:panelGrid> <h:panelGrid columns="1" border="0" width="100%" columnClasses="formLabel,formValue" rowClasses="formLabel"> <s:decorate id="descDecoration" template="../layout/edit.xhtml"> <ui:define name="label">#{messages.lblDescription}</ui:define> <h:inputTextarea id="desc" rows="8" cols="65" value="#{userBean.strDescription}" /> </s:decorate> </h:panelGrid> <h:panelGrid width="330" id="save"> <a:commandButton id="saveUserButton" value="#{messages.btnSave}" reRender="commonPanel" action="#{userAction.persistUserDetails}" rendered="#{userBean.iuserId == null}" /> </h:panelGrid> </s:div> </h:panelGrid> </h:form> </h:panelGrid> </rich:modalPanel> </a:outputPanel>
I am clearing the UserBean everytime I open or close the modalpanel.
userBean = null;
in both methods renderAddUser() and closeLayer().
Thanks
Ambrish