我正在尝试使用primefaces Tree(和TreeTable,甚至更好,但结果相同)显示值。
<h:form id="treeTableForm">
<p:commandButton actionListener="#{aircraftTypeHandler.tableSubmit}"
update="@form" />
<p:tree id="perfoTree" value="#{aircraftTypeHandler.perfosNode}"
var="perfo" animate="true" style="min-width:300px;">
<p:treeNode id="treeNode">
<h:inputText value="#{perfo.type}" />
<p:spacer width="20" height="0" />
<h:inputText value="#{perfo.altitude}" />
<p:spacer width="20" height="0" />
<h:inputText value="#{perfo.mass}" />
<p:spacer width="20" height="0" />
<h:inputText value="#{perfo.distance}" />
<p:spacer width="20" height="0" />
</p:treeNode>
</p:tree>
</h:form>
按下commandButton时,没有任何反应。 删除组件时,正确调用了backing bean方法。
你知道为什么吗? 如何使用“树状”组件显示数据,同时能够在将数据发送回辅助bean之前与数据进行交互?感谢
答案 0 :(得分:0)
如ÖmerFarukAlmalı所示
将按钮放在另一个表单中可以使事情发挥作用。至于解释,我让你解释一下:))
<h:form>
<p:commandButton id="singleBtn" value="Save" icon="ui-icon-save"
update="@form :treeTableForm" process="@form :treeTableForm"
actionListener="#{aircraftTypeHandler.tableSubmit}" />
</h:form>
<h:form id="treeTableForm">
<p:treeTable id="perfosTreeTable"
value="#{aircraftTypeHandler.perfosNode}" var="perfo"
scrollable="true" scrollHeight="300">
<f:facet name="header">
<h:outputText value="Performances" />
</f:facet>
<p:column headerText="Perfo Type">
<h:outputText value="#{perfo.type}" />
</p:column>
<p:column headerText="Altitude">
<h:outputText value="#{perfo.altitude}" />
</p:column>
<p:column headerText="Mass">
<h:outputText value="#{perfo.mass}" />
</p:column>
<p:column headerText="Distance">
<p:inputText value="#{perfo.distance}"
rendered="#{perfo.distance != null}">
<p:ajax event="blur" listener="#{aircraftTypeHandler.tableSubmit}" />
</p:inputText>
</p:column>
</p:treeTable>
</h:form>