我是JSF的新手。 我想要做的是从输入文本及其相应的dr / cr中选择值。 其值应根据值在outputtext中更新。 Bt ajax没有更新输出文本。 这里数据表映射到DTO列表。
<h:form id="form1">
<p:messages/>
<p:panelGrid columns="1">
<p:panelGrid columns="2">
<h:outputText value="Voucher Date"/>
<p:calendar required="true" requiredMessage="Please enter date." value="#
{transactionMBean.journalEntryDate}"/>
<h:outputText value="Transaction Remarks"/>
<p:inputText required="true" requiredMessage="Please enter remarks."
value="#{transactionMBean.journalEntryRemarks}"/>
</p:panelGrid>
<p:panelGrid columns="1">
<p:dataTable value="#{transactionMBean.tranDTOList}" var="tran"
style="width: 600px">
<p:column style="width: 200px !important" headerText="A/c Ledger">
<p:selectOneMenu style="width: 190px !important" value="#
{tran.accMasterId}">
<f:selectItem itemLabel="Select" itemValue="0"/>
<f:selectItems value="#{transactionMBean.accMaster}" var="acc"
itemLabel="#{acc.accName}" itemValue="#{acc.id}"/>
</p:selectOneMenu>
</p:column>
<p:column headerText="Transaction Amount">
<p:inputText value="#{tran.txnAmount}">
<p:ajax listener="#{transactionMBean.ajaxActionOnDataTable()}"
update="opCr, opDr"/>
</p:inputText>
</p:column>
<p:column headerText="Dr/Cr">
<p:selectOneRadio value="#{tran.drCr}">
<f:selectItem itemLabel="Dr" itemValue="D"/>
<f:selectItem itemLabel="Cr" itemValue="C"/>
<p:ajax listener="#{transactionMBean.ajaxActionOnDataTable()}"
update="opCr, opDr"/>
</p:selectOneRadio>
</p:column>
</p:dataTable>
</p:panelGrid>
<p:panelGrid id="op" style="float: right !important" columns="1">
<h:outputText id="opDr" value="Dr Total: #{transactionMBean.drTotal}"/>
<h:outputText id="opCr" value="Cr Total: #{transactionMBean.crTotal}"/>
</p:panelGrid>
<p:commandButton value="Transaction Post" ajax="false" action="#
{transactionMBean.addTransaction()}"/>
<p:commandButton immediate="true" value="Reset" ajax="false" action="#
{transactionMBean.resetTransaction()}"/>
</p:panelGrid>
</h:form>
答案 0 :(得分:0)
尝试<p:ajax listener="#{transactionMBean.ajaxActionOnDataTable()}"
update=":op:opCr :op:opDr"/>
不要在更新使用空间中使用,
多个。您应该在无线电使用中使用更新中的某些事件,在文本框中选择使用模糊或键盘等。