Show or Hide s:decorate based on dropdown
sandeep123.sandeep.mavenir.com May 6, 2009 2:08 PMHi,
I need to hide a field contained within a s:decorate tag based on value selected in dropdown. The code i attempted is as follows - but it does not seem to work as expected, any help is greatly appreciated
The dropdown field:
<s:decorate id="paramDecoration" template="layout/edit.xhtml">
<ui:define name="label">Name</ui:define>
<h:selectOneMenu id="ruleset"
required="true"
style="width:170px;"
value="#{ruleElemHome.instance.paramMetadata}">
<s:selectItems
value="#{paramMetadataList.resultList}"
var ="paramMetadata"
label="#{paramMetadata.name}" />
<s:convertEntity/>
<a4j:support event="onchange" reRender="valueDecoration" ajaxSingle="true"/>
</h:selectOneMenu>
</s:decorate>
The field that needs to hidden
<s:decorate id="valueDecoration" template="layout/edit.xhtml" rendered="#{ruleElemHome.enumField eq 'false'}">
<ui:define name="label">value</ui:define>
<h:inputText id="value"
size="32"
maxlength="32"
value="#{ruleElemHome.instance.value}">
<a:support event="onblur" reRender="valueDecoration" bypassUpdates="true" ajaxSingle="true"/>
</h:inputText>
<h:outputText value="#{ruleElemHome.enumField}" />
</s:decorate>
The home class which sets the field called enumField based on which the "value" field is to be hidden
private String enumField=null;
public void setEnumField(String enumField) {
this.enumField = enumField;
}
public String getEnumField() {
if(this.getInstance().getParamMetadata()!=null && this.getInstance().getParamMetadata().getDataType()!=null) {
if(this.getInstance().getParamMetadata().getDataType().equalsIgnoreCase("ENUM")) {
this.enumField = "true";
}
}
return this.enumField;
}