如何在 ADF Oracle 11gR1 中的对话框 window 的弹出窗口中刷新 table

How to refresh table within a popup in dialog window in ADF Oracle 11gR1

我正在处理显示弹出窗口 window 并在其中搜索 table 的要求。当用户单击弹出窗口中的搜索按钮(提供输入文本框)时 window,搜索 table 需要使用新的数据集进行刷新。

我创建了一个 populateSearchTable() 方法来通过填充数组 deviceListArray<POJO CLass> 中的值来生成 table。

populatesearchTable()中,每次我生成数据时,我都试图通过deviceListArray.Clear()方法清除deviceList数组,并在最后使用下面的方法刷新table

 AdfFacesContext.getCurrentInstance().addPartialTarget(<tableBindingVariable>)

出于某种原因,table 没有刷新。如果我需要分享我的代码,请告诉我。

是否有任何其他方法可以在弹出窗口中刷新 table,这不同于正常的刷新方法。

声明列表并创建 setter 和 getter 后。

List<String> myList= new ArrayList<String>();

进行搜索时,用结果数据填充列表,然后将其放入 ProcessScope 喜欢

for(....){

mylist.add(....)
}     

AdfFacesContext.getCurrentInstance().getProcessScope().put("mylist", mylist);

将列表的get方法重写为如下:

public List<String> getMyList() {
        myList.clear();
        List<String> list = (List<String>) AdfFacesContext.getCurrentInstance().getProcessScope().get("myList");
        if (list != null) {
            for (String var : list) {
                myList.add(var);
            }
        }
        return myList;
    }

并确保将 table 的值设置为列表:

  <af:table value="#{SomeBean.myList}" var="row" rowBandingInterval="0" ..... />

此致

萨拉姆...:)