PrimeFaces(移动):InputText不会触发ajax事件

时间:2013-05-07 08:35:38

标签: ajax events tabs accordion primefaces-mobile

早上好,

我正在使用 Primefaces-mobile JSF 开发移动网络。网络上有一个 Accordion面板组件,里面有一些由DataBase检索的列表生成的动态标签。每个选项卡都包含一个带有一些记录的网格,也是从从数据库中检索的列表动态生成的。为了在网格内部进行测试,有3列,我的意图是从第2列更改输入框时,第3列的outputText必须使用在输入框上生成的相同击键进行更改。

在XHTML中:

    <p:accordionPanel dynamic="true" 
                  cache="true"
                  id="zoneAccordion"
                  var="zone" 
                  value="#{explorerBean.childrenZones}"
                  activeIndex="-1">    

    <p:ajax event="tabChange" listener="#{explorerBean.onTabChange}" update=":form:growlTest"/>


    <p:tab title="#{zone.desc}">  

        <!-- SIGNALS GRID -->                            
        <p:dataTable id="signalsGrid2"
                     var="signal"
                     value="#{explorerBean.navigationBean.signalsList}" >
            <p:column headerText="Signal ID">
                <h:outputText id="idSignalLabel" 
                              value="#{signal.idSignal}"/>
            </p:column>
            <p:column headerText="Value">
                <p:inputText value="#{signal.value}"
                             idsignal="#{signal.idSignal}"
                             size="3">

                    <!-- FIRE AN EVENT -->
                    <p:ajax event="keyup" update="out1"/>

                </p:inputText>                                    
            </p:column>
            <p:column headerText="Test">                                    
                <h:outputText id="out1" value="#{signal.value}" />                                     
            </p:column>
        </p:dataTable> 
         <p>

        </p>

        <!-- SAVE CHANGES BUTTON -->   
        <p:commandButton value="Save changes"                                             
                         update=":form:growlTest"
                         style="width: 100%"
                         icon="ui-icon-disk"
                         actionListener="#{explorerBean.saveChangesButton}">                                
        </p:commandButton>

    </p:tab> 

</p:accordionPanel>  

“tabChange”事件被正确触发,因此侦听器运行“explorerBean.onTabChange”。问题是当 inputBox (标签内的第2列)内容发生变化时。 ajax事件“keyup”不会被触发,因此outputText(tab中的第3列)的内容不会改变。

ExplorerBean被称为托管bean:

@ManagedBean
@RequestScoped
public class ExplorerBean implements Serializable {

我一直在搜索任何答案,我在Tabs中发现了问题触发事件,但它应该在我正在使用的版本中修复。

关于我正在使用的版本,这里有Maven依赖项:

        <!-- JSF -->
        <dependency>
            <groupId>com.sun.faces</groupId>
            <artifactId>jsf-api</artifactId>
            <version>2.1.1-b04</version>
        </dependency>
        <dependency>
            <groupId>com.sun.faces</groupId>
            <artifactId>jsf-impl</artifactId>
            <version>2.1.1-b04</version>
        </dependency>

         <!-- PRIME FACES -->
        <dependency>
            <groupId>org.primefaces</groupId>
            <artifactId>primefaces</artifactId>
            <version>3.5</version>
        </dependency>
        <dependency>
            <groupId>org.primefaces</groupId>
            <artifactId>primefaces-mobile</artifactId>
            <version>0.9.3</version>
        </dependency>
        <dependency>
            <groupId>org.primefaces.themes</groupId>
            <artifactId>cupertino</artifactId>
            <version>1.0.6</version>
        </dependency>   

有没有人知道ajax事件是否在PrimeFaces中的Tabs内正常工作?,你知道从inputText激发事件的其他方法吗?

非常感谢。

此致 拉法。

0 个答案:

没有答案