级联动态选择列表的动态操作在列表值更改时触发,而不仅仅是当用户从列表中选择一个值时
Posted
技术标签:
【中文标题】级联动态选择列表的动态操作在列表值更改时触发,而不仅仅是当用户从列表中选择一个值时【英文标题】:Cascading dynamic select list's dynamic action gets triggered when the list values changes ,not only when user select a value from the list 【发布时间】:2018-05-18 05:42:53 【问题描述】:我正在 Oracle APEX 5.1 上开发应用程序。这里我有一个动态选择列表,其值取决于同一页面上的页面项目值。所以我在选择列表的'Cascading LOV Paret item'字段中添加了这个页面项目,并在选择列表的pl/sql代码中引用了这个项目。 我已经为提交页面的选择列表定义了一个“onChange”动态操作。
问题是:每当动态选择列表因级联 LOV 父项值的更改而刷新时,就会执行此动态操作。但我只需要在用户选择列表中的值时执行动态操作。
请帮我找出我哪里出错了!! 提前致谢。
【问题讨论】:
子LOV刷新后,其值应为null。您能否在onChange
动态操作上添加一个条件,以便仅在子项不为空时才执行它的操作?
@JeffreyKemp 感谢您的回复。但是当用户从选择列表中选择“空值”(显示为-Current-)时,我也需要进行动态操作。即使选择列表中的选择为空,也需要更改页面内容。
【参考方案1】:
您是否尝试过将动态操作更改为在选择时触发而不是在更改时触发?
根据 APEX 文档here。当 LOV 以某种方式被修改时会触发 onChange 操作,而当用户在字段中选择某些内容时会触发 select 操作。
另一种可能的解决方案是在选择列表属性中。有一个称为“选择时的页面操作”的设置,可用于在选择值时提交页面。
【讨论】:
感谢您的回复。1) 对于“选择”DA,文档说“选择”用于文本字段。 (选择(选择) - 当用户在文本字段中选择一些文本时触发。支持的用户界面类型:桌面和 jQuery Mobile 智能手机。)。我试过'on select',但是当我们选择一个值时没有任何反应。 2) 对于“srlection 上的页面操作”,我需要在提交之前执行一些 pl/SQL 代码。你能帮我看看我应该把代码保存在哪里,以便每次提交之前都会执行。 我尝试了第二种方法,方法是在提交 plsql 代码之前创建一个要执行的进程。但是在这里我也遇到了与我的问题相同的问题。页面被提交以刷新列表值。 关于创建在提交之前运行的代码。您可以创建一个动态操作,使用 before submit 运行 pl/sql 代码。或者我建议在提交后或处理选项卡上的验证时运行它。 除此之外,恐怕我想不出另一种解决方案,除了当用户选择一个值时页面真的需要提交吗?我只需要一个按钮,用户在选择一个选项后单击该按钮即可提交页面。以上是关于级联动态选择列表的动态操作在列表值更改时触发,而不仅仅是当用户从列表中选择一个值时的主要内容,如果未能解决你的问题,请参考以下文章
Axure7 两个下拉列表联动,第一个下拉列表选中某项后,删除第二个下拉列表中的项