JSF: inputText with converter in dataTable Problem
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:
- User input data in a table cell.
- User press tab key and jump to next input box in the table.
- Meanwhile the just inputed text will be converted and displayed immediately.
- But user lost the focus of the next input box because of the rerendering of whole table.
What I want is:
- User input data in a table cell.
- User press tab key and ju开发者_高级运维mp to next input box in the table.
- Meanwhile the just inputed text should be converted and displayed immediately.
- User should not lose the focus of the next input box (maybe use a partial rerendering).
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.
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>
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.
 
         加载中,请稍侯......
 加载中,请稍侯......
      
精彩评论