Oracle APEX - 是否可以在不刷新整个页面的情况下向会话状态提交值?

Oracle APEX - Is it possible to submit a value to session state without refreshing the entire page?

我有一个页面有一堆 Select 列表项。 下一个下面的每个 Select 列表项执行一个 SQL 查询以从会话状态中检索前一个项目的值,并根据结果显示一个新列表。

我可以通过允许每个 Select 列表项到 'Submit to Page' 来使一切正常工作,这会刷新整个页面。看到有 5+ Select 列表项,让用户在每次刷新时等待不是很用户友好。

有没有办法在不刷新页面的情况下从 Select 列表获取值进入会话状态,或者让 SQL 查询从前一个 [=17] 获取值=] 列出项目并在其查询中使用它来显示新列表?

我认为您正在寻找级联 LOV。这是一个关于如何使用它们的简短示例。

假设您想要 2 个 select 列表,一个包含部门,另一个包含在 selected 部门工作的员工。因此,我们需要一个包含所有部门的 table DEPARTMENTS(department_id, deparment_name) 和一个包含所有员工以及他们在哪个部门工作的 table EMP(emp_id, emp_name, department_id)

创建您的第一个 select 列表,命名为 P1_DEPARTMENTS,使用值列表 SQL 像这样查询 select department_name, department_id from departments

现在使用值列表 SQL 查询

创建名为 P1_EMPLOYEES 的第二个 select 列表

select emp_name, emp_id from EMP where department_id=:P1_DEPARTMENTS

现在在 级联 LOV Parent 项 属性 P1_EMPLOYEES select 列表中你必须 select您想要作为 parent 传递的项目,在我们的例子中是 P1_DEPARTMENTS

现在,当您 select P1_DEPARTMENTS select 列表中的值时,P1_EMPLOYEES select 列表将刷新,您将只获得在 selected 部门工作。