如何在数据表中动态获取组件 p:inputText 的值?
How to dynamically get value of component p:inputText inside a datatable?
我有一个 primefaces 数据表:
<p:dataTable id="tabela" var="item"
value="#{myBean.lista}"
rowIndexVar="rowindex">
<p:column>
<p:inputText
required="true" id="inputAliquota" value="#{item.taxa}"
>
</p:inputText>
</p:column>
</p:dataTable>
在我的支持 bean 中有一个列表:
private List<Aliquota> lista;
还有一个用于从我的数据表中删除列的按钮:
<p:commandLink
immediate="true" id="botaoExcluir"
action="#{myBean.excluirAliquota}"
>
<f:setPropertyActionListener value="#{item}"
target="#{myBean.aliquota}" />
</p:commandLink>
当我启动 bean 时,我用 5 个空的 Aliquota 对象填充 "lista"。
在 excluirAliquota 方法中,我得到了必须删除的对象,与列表的值进行比较并将其删除。但我有问题。当用户更改 inputText 的值时,更改不会反映列表中的 Aliquota 对象。
我的问题是如何在不提交的情况下设置这个值?
不提交就无法反映backing bean的值。但是,您可以通过向输入文本添加侦听器来使用 Ajax 提交它。 listener 方法不需要做任何事情,它可以是空的,但它需要在 Ajax 提交时存在。它可以是这样的:
<p:dataTable id="tabela" var="item"
value="#{myBean.lista}"
rowIndexVar="rowindex">
<p:column>
<p:inputText
required="true" id="inputAliquota" value="#{item.taxa}"
>
<p:ajax listener="#{myBean.dummyListener()}"/>
</p:inputText>
</p:column>
</p:dataTable>
这会立即将 inputText 中的所有更改反映到相应项目的分类单元字段中。如果那是你想要的,你可以使用这个方法。
我有一个 primefaces 数据表:
<p:dataTable id="tabela" var="item"
value="#{myBean.lista}"
rowIndexVar="rowindex">
<p:column>
<p:inputText
required="true" id="inputAliquota" value="#{item.taxa}"
>
</p:inputText>
</p:column>
</p:dataTable>
在我的支持 bean 中有一个列表:
private List<Aliquota> lista;
还有一个用于从我的数据表中删除列的按钮:
<p:commandLink
immediate="true" id="botaoExcluir"
action="#{myBean.excluirAliquota}"
>
<f:setPropertyActionListener value="#{item}"
target="#{myBean.aliquota}" />
</p:commandLink>
当我启动 bean 时,我用 5 个空的 Aliquota 对象填充 "lista"。
在 excluirAliquota 方法中,我得到了必须删除的对象,与列表的值进行比较并将其删除。但我有问题。当用户更改 inputText 的值时,更改不会反映列表中的 Aliquota 对象。
我的问题是如何在不提交的情况下设置这个值?
不提交就无法反映backing bean的值。但是,您可以通过向输入文本添加侦听器来使用 Ajax 提交它。 listener 方法不需要做任何事情,它可以是空的,但它需要在 Ajax 提交时存在。它可以是这样的:
<p:dataTable id="tabela" var="item"
value="#{myBean.lista}"
rowIndexVar="rowindex">
<p:column>
<p:inputText
required="true" id="inputAliquota" value="#{item.taxa}"
>
<p:ajax listener="#{myBean.dummyListener()}"/>
</p:inputText>
</p:column>
</p:dataTable>
这会立即将 inputText 中的所有更改反映到相应项目的分类单元字段中。如果那是你想要的,你可以使用这个方法。