当在oracle-adf中单击列表框中的某个值时,如何使多个列表框更改值?

时间:2016-04-10 04:02:02

标签: oracle-adf

我有主表(M1)详细信息表(D1)。详细信息表( D1 )有2个字段,seq1(M1的外键),seq2(另一个表的外键表示M2)。 M1 D1 表具有一对多的关系。 M2 表有6个字段,例如seq2 field1 field2 field3 field4 field5。以下是详细表格。

M1
seq1 fieldM1 fieldM2 fildM3

M2
seq2 field1 field2 field3 field4 field5

D1
seq1 seq2

在我的页面中,我有一个主表格(M1)和详细表格(D1)。 onClick的addChild可以添加新的细节行。在页面的详细信息表中,我显示了5个字段。 3个listBoxes和两个readOnly文本框。详细信息表的所有数据都来自M2表。

以下是我的业务情景: 更改任何列表框时,应通过从M2表中检索自动填充剩余的4个字段,并且应从M2表更新D1的seq2。

这是我的问题: 1)我可以用声明方法做到这一点吗?

是否有更好的方法来创建ADF businessComponents。请提供足够的详细信息,因为我是ADF的新手。 有关详细信息,请参阅以下屏幕截图。

enter image description here

1 个答案:

答案 0 :(得分:0)

为此,你必须在LOV上添加一个valueChangeListener函数来触发刷新。

e.g:

<af:selectOneChoice simple="true" id="userSelectOneChoice"
                            valueChangeListener="#{myScope.mybean.getRefreshData}"
                            autoSubmit="true">
          <f:selectItems value="#{myScope.mybean.myList}"
                         id="userSelectItems"/>
        </af:selectOneChoice>

您可以计算要在此valueChangeListener中显示的数据,因为它将在选择特定值时触发:

public void getRefreshData(ValueChangeEvent valueChangeEvent){
     String selectedItem= String.valueOf(valueChangeEvent.getNewValue());
     //Refresh my data below
}

刷新数据后,您需要触发表的部分呈现,以允许显示新刷新的数据。

为此,添加partialTriggers =&#34; userSelectOneChoice&#34;在你的表的父元素上。