2010年4月20日星期二

ADF_075:Table 组件使用指南之五:使用Poll组件刷新Table

本文最后一次修改时间:2012-03-19。
运行环境:JDeveloper 11.1.2.1.0 + Oracle Database 10g Express Edition 10.2.0.1。

实验说明:需求来自一个Partner,他们希望能够自动刷新一个表格。

实现步骤非常简单,定义一个poll组件,定期执行一个方法,刷新表格。

1. poll组件
属性interval是间隔的毫秒数。
属性pollListener是执行的Managed Bean的方法。
<af:poll id="tablePoller" interval="5000" pollListener="#backingBeanScope.myBackingBean.pollListener}"/>

2. Magaged Bean的方法

public void pollListener(PollEvent pollEvent) {
DCBindingContainer dcBindings = (DCBindingContainer)getBindings();
DCIteratorBinding dcIterator = dcBindings.findIteratorBinding("JobsView1Iterator");
dcIterator.executeQuery();
}


3. 测试
在后台手工修改数据库中的数据并提交,观察页面,发现自动显示了新修改的数据。
界面的效果是每次自动刷新表格时,表格会抖动一下。
如果希望表格不抖动,需要使用ADF的另一个高级技术:Active Data Service。

4. 更进一步,自动执行查询,刷新Table
如果是带有查询条件,希望自动获取条件,并执行查询,结果用Table显示。
经过实验,代码与前面完全一样就可以。
效果是会自动获取条件并执行查询,如果要更改条件,需要点击按钮确认,这样以后每次都是使用新的条件查询。


Project 下载:ADF_Table_RefreshByPoll.7z

没有评论: