例如
它将从表中查找
例如,表格看起来像这样,所以使用townID
它应该可以找到该县。
TownID || Town || County ||
由于
答案 0 :(得分:7)
以下是使用DEPT表的一个非常简单的示例:demo page。
从列表中选择DEPTNO时,相关的DNAME值将显示在文本字段中。这是使用如下定义的“高级”动态动作完成的:
“真实行动”的定义如下:
这可以通过执行AJAX往返来运行select语句。请注意,我们需要告诉Apex提交P25_DEPTNO字段的当前值,以便它能够获得正确的数据。
当然,在可能的情况下,最好避免使用AJAX,因为每个操作都涉及到服务器的往返。在这种情况下,可以通过将所有必需数据放入选择列表返回值然后在客户端上解析它来避免它。要做到这一点,你可以像这样定义选择列表LOV:
select deptno d, deptno||':'||dname r
from dept
order by 1
然后使用动态操作,该动作使用Javascript表达式来解析返回值并填充其他项:
当然,选择列表不再返回(仅)DEPTNO值,因此如果需要值(我可能会这样做),我还需要将其解析为单独的字段。这需要动态动作定义中的第二个True Action。
结果(参见new demo)不使用AJAX,因此效率更高,但代码更复杂 - 您需要了解一点Javascript。此外,您可能需要处理其中一个数据值包含您选择的分隔符(我的示例中为冒号)的情况。
哪种方式取决于您的具体情况:如果相关数据的获取成本很高(例如使用复杂的函数调用),最好使用AJAX方法,只在真正需要时获取数据;但是,如果预先获得它是便宜的,那么往返的节省可能是值得的。
答案 1 :(得分:2)
Denes Kubicek在Oracle托管的APEX网站上有一个可爱的demo application(听起来就像你正在使用的那样),它向你展示了一个范围广泛的控件和实现它们所需的代码的示例。最好的用户界面体验是使用APEX Cascading Select List(在第III节中)。
更少的代码但不是那么漂亮的用户界面将每个值列表设置为“选择列表提交”。然后将使用SELECT
填充第二个列表,该{{1}}引用第一个控件的值。在Denes的示例应用程序中以及Cascading LOV's page(在第I部分)中有一些示例。