Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/jsf/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jsf 如何使用执行计算的操作在primefaces数据表中创建textfield单元格_Jsf_Primefaces_Jsf 2.2 - Fatal编程技术网

Jsf 如何使用执行计算的操作在primefaces数据表中创建textfield单元格

Jsf 如何使用执行计算的操作在primefaces数据表中创建textfield单元格,jsf,primefaces,jsf-2.2,Jsf,Primefaces,Jsf 2.2,我目前正在处理一个动态数据表。假设这个表有4列(name、x、y、z)。x、 y必须是数字文本字段,z是显示x和y之和的标签。更改x或y上的值时,必须重新计算z上的值 我现在的问题是我无法将文本字段绑定到datatable实体,如果我使用来自primefaces的编辑,我需要添加一个我不喜欢的编辑事件。此外,它最初将单元格显示为标签,然后需要单击它以显示文本字段 有什么建议吗?谢谢。这是我的解决方案,而不是使用primefaces datatable.edit功能。我只是在单元格中使用了一个te

我目前正在处理一个动态数据表。假设这个表有4列(name、x、y、z)。x、 y必须是数字文本字段,z是显示x和y之和的标签。更改x或y上的值时,必须重新计算z上的值

我现在的问题是我无法将文本字段绑定到datatable实体,如果我使用来自primefaces的编辑,我需要添加一个我不喜欢的编辑事件。此外,它最初将单元格显示为标签,然后需要单击它以显示文本字段


有什么建议吗?谢谢。

这是我的解决方案,而不是使用primefaces datatable.edit功能。我只是在单元格中使用了一个textfield,并添加了一个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>

如果您遵循primefaces showcase的可编辑数据表(单元格),您只需添加一个p:ajax更改来更新数据表,Z列是一个带有el表达式的标签,其计算类似于
{varDT.x+varDT.y}
应该可以解决您的问题,感谢您的评论,但添加并不是我真正的问题,而是更多的问题。在primefaces编辑数据表中,我们首先需要一个可点击的标签作为输出,但我需要一个文本字段作为输入和输出。此外,z变量也是模型中的一个字段,因为我需要将其保存在db.Read中并相应地执行操作
public void reCompute(CreditNoteLine line) {
    line.computeWithTax();
}