我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标签之外,除了它抛出两个请求而不是一个。
有什么想法吗?赞赏。
答案 0 :(得分:3)
您可以尝试这样的事情:
<rich:tab action="#{mydata.refreshData}" reRender="myTable">
<rich:extendedDataTable id="myTable" data="#{myData.data}"/>
</rich:tab>