在渲染上刷新表

时间:2010-09-01 14:33:00

标签: java jsf richfaces

rich:extendedDataTable内有rich:tab

我想在每次呈现表时刷新表dataSource。每次选中标签时都会渲染。

坚果:

查看:

<rich:tab>
<rich:extendedDataTable data="#{myData.data}"/>
</rich:tab>

豆:

public class MyData{
List data;

public MyData(){
 data = this.refreshData();
}

public List getData(){
return data;
}

public List refreshData(){
//Database things here.
}
}

每次呈现表时,如何调用refreshData?我可以在执行修改reRender的操作的组件上使用data,但这会破坏组件的封装并且难以维护。如果表格在激活标签页时每次data都可以自动刷新reRendered,那就更好了。

我可以使用<rich:tab ontabenter='js_function_that_calls_the_server_and_refreshes_the_data'>,但我不认为这是最好的选择,因为你应该把这个函数放在tab标签之外,除了它抛出两个请求而不是一个。

有什么想法吗?赞赏。

1 个答案:

答案 0 :(得分:3)

您可以尝试这样的事情:

<rich:tab action="#{mydata.refreshData}" reRender="myTable">
  <rich:extendedDataTable id="myTable" data="#{myData.data}"/>
</rich:tab>