当我选择第一个SelectOnMenu的任何项目时,我想更新第二个SelectOneMenu。现在,我从ManagedBean获取SelectOneMenus的值。我想我必须使用AJAX(jquery)将参数发送到ManagedBean。
<h:form>
<div class="center">
<h:panelGrid id="editTable" columns="2" styleClass="center">
...
<h:outputText value="#{msg.timetable_list_category}" />
<h:selectOneMenu class="category">
<f:selectItems value="#{categoryBackingBean.categorys}" var="c"
itemLabel="#{c.category_Name}" itemValue="#{c.id}" />
</h:selectOneMenu>
<h:outputText value="#{msg.timetable_list_seminarblock}" />
<h:selectOneMenu class="seminarblock">
<f:selectItems value="#{seminarblockBackingBean.seminarblocks}" var="s"
itemLabel="#{s.seminarblock_Name}" itemValue="#{s.seminarblock_Id}" />
</h:selectOneMenu>
...
</h:panelGrid>
...
</div>
</h:form>
实际上,您可以使用ValueChangeListener,当selectOneMenu的值更改时将调用它:
<h:selectOneMenu class="category" valueChangeListener="#{yourBean.selectOneMenuListener}">
<f:selectItems value="#{categoryBackingBean.categorys}" var="c"
itemLabel="#{c.category_Name}" itemValue="#{c.id}" />
</h:selectOneMenu>
然后,在您的bean中,您可以使用以下方法:
public void selectOneMenuListener(ValueChangeEvent event) {
//This will return you the newly selected
//value as an object. You'll have to cast it.
Object newValue = event.getNewValue();
//The rest of your processing logic goes here...
}
要更新页面,您可以将其添加onchange="submit()"
到中<h:selectOneMenu/>
。对于某些局部渲染,您可以尝试添加以下内容<f:ajax/>
而不是onchange="submit()"
:
<h:selectOneMenu class="category" valueChangeListener="#{yourBean.selectOneMenuListener}">
<f:selectItems value="#{categoryBackingBean.categorys}" var="c"
itemLabel="#{c.category_Name}" itemValue="#{c.id}" />
<f:ajax event="change" execute="@form" render="theIdOfTheComponentYouWantToReRender"/>
</h:selectOneMenu>
如果我没记错的话,您将想要获取在第一个菜单中选择的元素的ID,并根据它填充第二个菜单。然后,您可以呈现另一个selectOneMenu,或者如果需要的话,呈现包装表单一部分的面板。
问题内容: 我想使用Primefaces 5.2创建一个移动表单,其中一个结果通过Ajax 更新第二个,就像这里的展示示例一样:http : //www.primefaces.org/showcase/ui/ajax/dropdown.xhtml,然后是移动版本。 我创建了一个JSF页面和backingbean 正是 像展示例子,它的工作原理。 但是,当我使用第二个元素添加移动外观时,更新后将其呈
控制器类别:包装样品;
首先请原谅我的英语不正确。。。 我有一个primeface的组件的问题,我试图刷新一个p: selectOneMenu从一个p:命令按钮,但它不工作(它的工作在另一个xhtml页面,但不是在这里,我不明白为什么...) 首先,我从更新backingbean属性的p:autocomplete中选择一个项目(例如:userChoose)。 然后p:commandButton可以调用他的监听器并将use
问题内容: import java.awt.event.ActionListener; import java.util.; import java.awt. ; import java.awt.event.WindowAdapter; import java.awt.event.WindowEvent; import java.awt.event.ActionEvent; import java
我有一个表,它有一个主键,这个主键是用table Generator生成的: @tablegenerator(name=“resourceidgenerator”,table=“sequence”,pkColumnName=“name”,pkColumnValue=“resource_type_id”,valueColumnName=“nextid”,allocationSize=1),它工作得很
我有多个谷歌电子表格与预订数据,如预订号码,客户端名称,电子邮件,预订日期等。在所有工作表中,这些列的顺序并不相同。 我想在一个“主”电子表格中更新我所有“源”表中的所有数据。这意味着,一旦添加新行或更新现有行,数据将同步到主电子表格 实现这一目标的最佳方式是什么?Javascript或者是否存在一些现有的Google Sheets插件? 示例表1:快速船预订 示例表2:机场中转预订 主表 非常感