【问题标题】:Update another component based on a change in the selectonemenu value根据 selectonemenu 值的变化更新另一个组件
【发布时间】:2014-02-12 20:43:07
【问题描述】:

我们的项目使用 JSF 1.2。要求是根据当前 selectonemenu 中的值更改更新另一个 selectonemenu 选项。

基于select1选项,select2需要更新。

<h:selectOneMenu id="select1" value="#{subscription.subscriptions}" onchange="javascriptMethod()">
    <f:selectItem id="item1" itemLabel="News" itemValue="1" />
    <f:selectItem id="item2" itemLabel="Sports" itemValue="2" />        
</h:selectOneMenu>

<h:panelGroup id="panel2">
 <h:selectOneMenu id="select2" value="#{subscription.subscriptions2}">
    <f:selectItem id="item1" itemLabel="News" itemValue="1" />
    <f:selectItem id="item2" itemLabel="Sports" itemValue="2" />        
</h:selectOneMenu>
</h:panelGroup>

【问题讨论】:

    标签: ajax jsf-1.2 selectonemenu


    【解决方案1】:

    你可以像这样使用 ajax 支持

      <h:selectOneMenu id="select1" value="#{subscription.subscriptions}"   >
        <f:selectItem id="item1" itemLabel="News" itemValue="1" />
        <f:selectItem id="item2" itemLabel="Sports" itemValue="2" />  
    
    
     </h:selectOneMenu>  
    

    Jsf 1.2 不支持 ajax,您唯一能做的就是在命令按钮上重新加载整个页面。

    我推测您正在使用 Richfaces 作为 ajax 和丰富的 ui 组件的第三方。 希望这可以帮助。

    如果你使用的是 primefaces,那么你可以用这样的方式替换标签

    <p:ajax event="onchange" update="select2" action="if you want to anything in   
                                                                          backend"/>   
    

    如果你想通过 javascript 来做,那么有一个隐藏的 h:commandButton 并将代码放入你的
    像这样的javascriptMethod()方法

         document.getElementById("myHiddenButtonId").click();  
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-12-16
      相关资源
      最近更新 更多