我有主表(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的新手。 有关详细信息,请参阅以下屏幕截图。
答案 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;在你的表的父元素上。