清除级联下拉列表的值

时间:2013-03-15 18:46:58

标签: jsf primefaces

我正在开发一个JSF 2.0应用程序,我有一个带有4个级联下拉列表的xhtml页面。根据某些查询从数据库中填充下拉列表。这很好用!现在我需要在选择完成后清除/重置这些下拉菜单。当我第二次来到这个页面时,下拉列表仍然存在。如果我从第一个下拉列表中选择,则第二个下拉列表会刷新,但不会刷新第三个和第四个下拉列表。这些数据仍然完好无损。这是我正在使用的代码。我只是在这里显示3个下拉列表,第四个类似。任何帮助/建议表示赞赏。

<label class="control-label">Dropdown1</label>
<div>
<h:selectOneMenu id="drop1" value="#{myBean.aId}">
    <f:selectItem itemLabel="Select" itemValue="" />
    <f:selectItems value="#{myBean.aList}" var ="a"
                    itemLabel="#{a.name}"
                    itemValue="#{a.id}" />

    <p:ajax update="drop2" listener="#{myBean.populateDrop2}" />  

</h:selectOneMenu>
</div>         

<label class="control-label">Dropdown2</label>
<div>
<h:selectOneMenu id="drop2" value="#{myBean.bId}">
    <f:selectItem itemLabel="Select" itemValue="" />
    <f:selectItems value="#{myBean.bList}" var ="b"
                    itemLabel="#{b.name}"
                    itemValue="#{b.id}" />

    <p:ajax update="drop3" listener="#{myBean.populateDrop3}" />  

</h:selectOneMenu>
</div>   


<label class="control-label">Dropdown3</label>
<div>
<h:selectOneMenu id="drop3" value="#{myBean.cId}">
    <f:selectItem itemLabel="Select" itemValue="" />
    <f:selectItems value="#{myBean.cList}" var ="c"
                    itemLabel="#{c.name}"
                    itemValue="#{c.id}" />
</h:selectOneMenu>
</div>   

1 个答案:

答案 0 :(得分:1)

如果您的bean在会话范围内,或者您在同一视图上通过回发导航,则会发生这种情况。只需将bean放在视图范围内,然后按GET请求进行导航即可。只要您通过回发与同一视图进行交互,并且GET请求将有效地创建一个全新的视图范围bean,视图范围的bean就会存在。

另见: