我有两个选择列表
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).
第一个选定的列表值会更改,但第二个列表永远不会更改。
注意:
在这种情况下如何更改列表值?
提前致谢。
答案 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详细介绍了如何实现级联列表