Reputation: 1
I build a h:inputText for a cell in h:dataTable with customized converter. The input text can be converted and the converted text can be displayed if I rerender the whole table.
The problem is, the reredering of the whole table will release the focus of next input box. I try to explain it clearly.
The problem that I have:
What I want is:
I also try to assign id to every single cell for the partial rerendering, but I don't know how to do this in dataTable.
Anyone has any solution to solve the problem? Thanks.
Upvotes: 0
Views: 1106
Reputation: 30025
Try this:
<h:inputText value="#{item.value}">
<f:ajax event="blur" render="@this" execute="@this"/>
</h:inputText>
The execute attribute should trigger the converter. You do not need a separate outputText this way.
Upvotes: 0
Reputation: 1108742
Just refer the id
of the output component in render
attribute of f:ajax
.
<h:dataTable value="#{bean.model}" var="item">
<h:column>
<h:inputText value="#{item.value}">
<f:ajax event="blur" render="output" />
</h:inputText>
</h:column>
<h:column>
<h:outputText id="output" value="#{item.value}" />
</h:column>
</h:dataTable>
Upvotes: 1