如何使用执行计算的操作在 primefaces 数据表中创建文本字段单元格
How to create a textfield cell in primefaces datatable with action that do a computation
我目前正在处理动态数据table。假设此 table 有 4 列(名称、x、y、z)。 x, y 必须是数字文本字段,z 是显示 x 和 y 之和的标签。当 x 或 y 上的值发生变化时,必须重新计算 z 上的值。
我现在的问题是我无法将文本字段绑定到数据table 实体,如果我使用来自 primefaces 的编辑,我需要添加一个我不需要的编辑事件像。它还将单元格最初显示为标签,然后需要单击它以显示文本字段。
有什么建议吗?谢谢。
这是我的解决方案,而不是使用 primefaces datatable.edit 功能。我只是在单元格中使用了一个文本字段,并添加了一个 p:ajax 来触发更改时的重新计算方法。注意update参数的使用,我们可以直接引用行上的某个字段。
<h:form id="creditNoteLinesForm">
<p:dataTable id="resultsId_creditNoteLines" var="entity"
value="#{creditNoteBean.entity.creditNoteLines}">
<!-- // -->
<p:column
headerText="#{messages['creditNote.list.amountWithoutTax']}">
<p:inputText value="#{entity.amountWithoutTax}">
<p:ajax event="change"
listener="#{creditNoteBean.reCompute(entity)}"
update="amountWithTax"></p:ajax>
</p:inputText>
</p:column>
<p:column headerText="#{messages['creditNote.list.amountTax']}">
<p:inputText value="#{entity.taxAmount}">
<p:ajax event="change"
listener="#{creditNoteBean.reCompute(entity)}"
update="amountWithTax"></p:ajax>
</p:inputText>
</p:column>
<p:column
headerText="#{messages['creditNote.list.amountWithTax']}">
<h:outputText id="amountWithTax" value="#{entity.amountWithTax}" />
</p:column>
</p:dataTable>
</h:form>
sdfdsf
public void reCompute(CreditNoteLine line) {
line.computeWithTax();
}
我目前正在处理动态数据table。假设此 table 有 4 列(名称、x、y、z)。 x, y 必须是数字文本字段,z 是显示 x 和 y 之和的标签。当 x 或 y 上的值发生变化时,必须重新计算 z 上的值。
我现在的问题是我无法将文本字段绑定到数据table 实体,如果我使用来自 primefaces 的编辑,我需要添加一个我不需要的编辑事件像。它还将单元格最初显示为标签,然后需要单击它以显示文本字段。
有什么建议吗?谢谢。
这是我的解决方案,而不是使用 primefaces datatable.edit 功能。我只是在单元格中使用了一个文本字段,并添加了一个 p:ajax 来触发更改时的重新计算方法。注意update参数的使用,我们可以直接引用行上的某个字段。
<h:form id="creditNoteLinesForm">
<p:dataTable id="resultsId_creditNoteLines" var="entity"
value="#{creditNoteBean.entity.creditNoteLines}">
<!-- // -->
<p:column
headerText="#{messages['creditNote.list.amountWithoutTax']}">
<p:inputText value="#{entity.amountWithoutTax}">
<p:ajax event="change"
listener="#{creditNoteBean.reCompute(entity)}"
update="amountWithTax"></p:ajax>
</p:inputText>
</p:column>
<p:column headerText="#{messages['creditNote.list.amountTax']}">
<p:inputText value="#{entity.taxAmount}">
<p:ajax event="change"
listener="#{creditNoteBean.reCompute(entity)}"
update="amountWithTax"></p:ajax>
</p:inputText>
</p:column>
<p:column
headerText="#{messages['creditNote.list.amountWithTax']}">
<h:outputText id="amountWithTax" value="#{entity.amountWithTax}" />
</p:column>
</p:dataTable>
</h:form>
sdfdsf
public void reCompute(CreditNoteLine line) {
line.computeWithTax();
}