【问题标题】:Controlling selection of one p:selectOneMenu from other p:selectOneMenu in PrimeFaces控制从 PrimeFaces 中的其他 p:selectOneMenu 选择一个 p:selectOneMenu
【发布时间】:2018-03-14 10:22:33
【问题描述】:

我有两个p:selectOneMenu,一个是Zone,另一个是District,如果选择了District,那么它应该自动选择相应的Zone,Zone和District都是从数据库表中加载的,并且District表包含Zone_id。即可以使用 zone_id 从 District 访问区域。

加载表单时会同时加载 Zone 和 District。 如何在Primefaces 中实现这个功能?我在 Java 中做过同样的事情,但在 Primefaces 中没有。

【问题讨论】:

  • 我尝试读取 District_id 以获取 zone_id,然后在区域表中找到该区域,但不知道如何在 p:selectOneMenu 中显示。

标签: jsf primefaces


【解决方案1】:

请查看Mkyong's JSF 2 ValueChangeListener Example<p:selectOneMenu> 应该像 <h:selectOneMenu> 一样工作。

【讨论】:

    【解决方案2】:

    你可以试试这个例子,因为我们可以使用两个以上的 selectOneMenu 如果我们想要它们是相互依赖的

    page.xhtml

       <h:outputLabel value="Country"></h:outputLabel>
          <p:selectOneMenu value="#{someBean.countryId}" style="width:157px;">
               <f:selectItem itemLabel="Select Country" itemValue="" />
               <f:selectItems value="#{someBean.countryList}" var="country"
                   itemLabel="#{country.name}" itemValue="#{country.id}" />
               <p:ajax update="State" listener="#{someBean.coutChange}" />
          </p:selectOneMenu>
    
       <h:outputLabel value="State"></h:outputLabel>
          <p:selectOneMenu value="#{someBean.stateId}" id="State" style="width:157px;">
              <f:selectItem itemLabel="Select State" itemValue="" />
              <f:selectItems value="#{someBean.stateList}" var="state"
                 itemLabel="#{state.name}" itemValue="#{state.id}" />
          </p:selectOneMenu>
    

    在 Bean 类中,用于在数据库中排列类型对象的列表并创建 getter/setter,并在 getter 中编写查询以从数据库中获取数据。为 selectOneMenu 中的选定值创建变量,将该变量用于 selectOneMenu 标记的 value 属性。然后在侦听器的 p:ajax 标记中编写一个方法来检查 coutryId 是否为空,如果不返回基于 countryId 的状态列表。这应该有效,希望对您有所帮助

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-04-19
      • 2013-05-22
      • 2013-01-05
      • 2012-12-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多