JSF:inputText与dataTable中的转换器问题

时间:2011-02-17 13:00:37

标签: jsf datatable rerender

我在h:dataTable中使用自定义转换器为单元格构建了一个h:inputText。 如果我重新渲染整个表格,可以转换输入文本并显示转换后的文本。

问题是,重新整理整个表将释放下一个输入框的焦点。我试着清楚地解释一下。

我遇到的问题:

  1. 表格单元格中的用户输入数据。
  2. 用户按Tab键并跳转到表格中的下一个输入框。
  3. 同时,刚刚输入的文本将被转换并立即显示。
  4. 但由于整个表的重新渲染,用户失去了下一个输入框的焦点。
  5. 我想要的是:

    1. 表格单元格中的用户输入数据。
    2. 用户按Tab键并跳转到表格中的下一个输入框。
    3. 同时,应立即转换并显示刚刚输入的文本。
    4. 用户不应该失去下一个输入框的焦点(可能使用部分重新渲染)。
    5. 我也尝试为每个单元格分配id以进行部分重新渲染,但我不知道如何在dataTable中执行此操作。

      任何人都有解决问题的方法吗?感谢。

2 个答案:

答案 0 :(得分:1)

只需在id的{​​{1}}属性中引用输出组件的render

f:ajax

答案 1 :(得分:0)

试试这个:

<h:inputText value="#{item.value}">
  <f:ajax event="blur" render="@this" execute="@this"/>
</h:inputText>

execute属性应该触发转换器。你不需要这样单独的outputText。