早上好,
我正在使用 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激发事件的其他方法吗?
非常感谢。
此致 拉法。