Oracle APEX |如何更改选择列表值并动态提交

时间:2016-08-15 14:32:05

标签: oracle plsql oracle-apex

我有两个选择列表

1。第一个P4_country_id_B包含国家/地区名称

    select country_name as d, country_id as r 
    from countries

2。第二个P4_CITY_ID_B包含基于P4_CITY_ID_B中所选值的国家/地区的城市。

    select city_name as d, city_id as r 
    from cities 
    where country_id = :P4_country_id_B

一切顺利,没有任何问题。

但是

我使用执行PL / SQL代码动态操作来更改这些列表的选定值(例如):

:P4_country_id_B:=country_returned_value;
:P4_CITY_ID_B:=city_returned_value;

其中

country_returned_value : is a one value of countries list values for example (USA)
city_returned_value    : is a one value of cities list values for example (NewYourk). 

第一个选定的列表值会更改,但第二个列表永远不会更改。

注意:

  • 我使用P4_country_id_B,P4_CITY_ID_B作为动态操作的要提交的页面项目
    • 我不想提交页面而不是动态行动

在这种情况下如何更改列表值?

提前致谢。

1 个答案:

答案 0 :(得分:1)

我认为这里有一些混乱。根据您的问题,我的答案假设第一个列表名称为P4_country_id_B,第二个列表名称为Cities_LOV。如果不是这样,请澄清。

您的第一个名为P4_country_id_B的列表,您可以通过以下语句将其分配给本身

  :P4_country_id_B:=country_returned_value;

基本上,没有任何变化,P4_country_id_B的值是列表P4_country_id_B的返回值,而不需要此任务。请注意,我不清楚什么是country_returned_value,因为P4_country_id_B包含返回的值。

其次,您有一个名为Cities_LOV的列表,并通过以下语句将返回的值分配给P4_CITY_ID_B页面项:

:P4_CITY_ID_B:=returned_city_value;

同样,我不确定returned_city_value是什么,因为Cities_LOV保存该列表的返回值。

我不确定你想在这里实现什么。但我想,您希望允许用户首先选择国家/地区,然后根据该数据,您要刷新城市列表以显示该特定国家/地区的城市。如果是这种情况,请对P4_country_id_B值更改使用动态操作,以刷新Cities_LOV的值。您只需将P4_country_id_B传递给该动态操作。

<强>更新

在你纠正问题的措辞后,答案是这样的:

在您的子列表P4_CITY_ID_B中,请确保将选项Cascading LOV parent item(s)设置为父列表P4_country_id_B。您不需要动态操作。子列表应该在更改父列表时刷新。答案here详细介绍了如何实现级联列表