使用另一个没有ajax的selectOneMenu重置selectoneMenu

时间:2017-06-01 15:33:54

标签: jsf primefaces selectonemenu

我想将另一个selectOneMenu的selectOneMenu重置为默认值,我不能使用ajax。 第一个菜单:

<h:selectOneMenu value="#{bean.rel}" id="relSelection" 
                       valueChangeListener="#{bean.onRelChange}" onchange="submit();"
                       immediate="true">
                       <f:selectItems value="#{bean.rel}" />
</h:selectOneMenu>

菜单我想重置:

<h:selectOneMenu value="#{bean.domSelected}" id="domSelection"
                 valueChangeListener="#{bean.onDomChange}" onchange="submit()"
                 hideNoSelectionOption="true" immediate="true" >
                 <f:selectItem itemValue="#{null}" itemLabel="Select..."
                 noSelectionOption="true" />
                 <f:selectItems value="#{bean.domNames}" var="item"
                 itemLabel="#{item}" itemValue="#{item}"/>                                    
</h:selectOneMenu>

如果在用户选择第二个菜单后选择了第一个菜单,我想重置第二个菜单。

我希望第二个菜单在我从onReleaseChange监听器将其值设置为null后显示noSelectionOption,但它会保留所选值。
监听器:

public void onRelChange(ValueChangeEvent event) {
  domSelected = null; //type String
  rel = (String) event.getNewValue();
 //som other stuff

}

我已经尝试了here描述的remoteCommand方法 添加这个:

<p:remoteCommand name="resetInputs" process="@this relSelection" 
                 actionListener="#{bean.clearMenu}" immediate="true">
    <p:resetInput target="domSelection" />
</p:remoteCommand> 

在第一个菜单中,我通过onChange =&#34; submit();调用了remoteCommand。 resetInputs()&#34;

为什么这不起作用的任何其他想法或想法?

谢谢!

Primefaces 6.1

JSF 2.2

GlassFish 4.1.1

0 个答案:

没有答案