我有一个包含一堆选择列表项的页面。 下一个下面的每个Select List项执行一个SQL查询,以从会话状态中检索上一个项的值,并根据结果显示一个新列表。
我可以通过允许每个“选择列表”项目“提交到页面”来刷新整个页面,从而使一切顺利进行。看到有5个以上的选择列表项目,让用户等待每次刷新都不是非常用户友好。
有没有办法让选择列表中的值进入会话状态而不刷新页面,或者SQL查询从前一个选择列表项中获取值并在其查询中使用它来显示新的列出?
答案 0 :(得分:1)
我认为您正在寻找级联LOV。这是一个如何使用它们的简短示例。
假设您希望有两个选择列表,一个是部门,另一个是在所选部门工作的员工。因此,我们需要一个包含所有部门的表DEPARTMENTS(department_id, deparment_name)
和一个表EMP(emp_id, emp_name, department_id)
,其中包含所有员工以及他们所在的部门。
使用值列表SQL查询创建名为P1_DEPARTMENTS
的第一个选择列表,如select department_name, department_id from departments
现在使用值列表SQL查询
创建名为P1_EMPLOYEES
的第二个选择列表
select emp_name, emp_id from EMP where department_id=:P1_DEPARTMENTS
现在在P1_EMPLOYEES
选择列表的级联LOV父项属性中,您必须选择要作为父项传递的项目{{1} }}。
现在,当您在P1_DEPARTMENTS
选择列表中选择一个值时,P1_DEPARTMENTS
选择列表将刷新,您将只获得在所选部门中工作的员工。