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