我正在制作带有下拉菜单的表单,用户必须首先选择,而不是使用ajax下一个选项。它工作得很好。但是我想为dropodwns添加bootstrap格式,所以我安装了bootstrap-select。它的工作也很好,但是当ajax事件呈现下一个数据时,他会在新的下拉列表中呈现它,旁边仍然是空的bootstrap格式化下拉列表。女巫,你怎么能预测,不是理想的行动。这是来自jsf的代码:
<h:selectOneMenu styleClass="bootstrap-select" id="marka" value="#{searchBean.markiID}">
<f:selectItems value="#{searchBean.listaMarek}" var="c" itemLabel="#{c.marka}"
itemValue="#{c.markaID}"/>
<f:ajax event="change" execute="marka" render="model"/>
</h:selectOneMenu>
<h:outputText value="#{msg.carModel}"></h:outputText>
<h:selectOneMenu styleClass="bootstrap-select" id="model" value="#{searchBean.modelID}">
<f:selectItems value="#{searchBean.listaModeli}" var="p" itemLabel="#{p.model}"
itemValue="#{p.modelID}"/>
<f:ajax event="change" execute="model" render="liczbaDrzwi"/>
</h:selectOneMenu>
在backbean中,当用户从第一个下拉列表中选择smthging时,会生成第二个下拉列表中的项目列表,依此类推。这是做出选择的结果:
正如您所看到的,ajax创建了全新的下拉列表,而不是填充现有的。
感谢您的任何想法:)
答案 0 :(得分:0)
JSF Ajax以这种方式工作...而不是填充已经存在的下拉列表... jee服务器发送一个新的HTML片段来替换这个下拉代码... 也许您可以阅读此链接以了解JSF生命周期... jsf lifeclycle
您是否尝试使用primefaces或richfaces而不是h:selectOneMenu组件?
以下是PrimeFaces示例,您可以在其中查看在另一个下拉列表中选择值时如何更新一个下拉列表... pf example