【问题标题】: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-)时,我也需要进行动态操作。即使选择列表中的选择为空,也需要更改页面内容。

标签: dynamic plsql selectlist oracle-apex-5.1


【解决方案1】:

您是否尝试过将动态操作更改为在选择时触发而不是在更改时触发?

根据 APEX 文档here。当 LOV 以某种方式被修改时会触发 onChange 操作,而当用户在字段中选择某些内容时会触发 select 操作。

另一种可能的解决方案是在选择列表属性中。有一个称为“选择时的页面操作”的设置,可用于在选择值时提交页面。

【讨论】:

  • 感谢您的回复。1) 对于“选择”DA,文档说“选择”用于文本字段。 (选择(选择) - 当用户在文本字段中选择一些文本时触发。支持的用户界面类型:桌面和 jQuery Mobile 智能手机。)。我试过'on select',但是当我们选择一个值时没有任何反应。 2) 对于“srlection 上的页面操作”,我需要在提交之前执行一些 pl/SQL 代码。你能帮我看看我应该把代码保存在哪里,以便每次提交之前都会执行。
  • 我尝试了第二种方法,方法是在提交 plsql 代码之前创建一个要执行的进程。但是在这里我也遇到了与我的问题相同的问题。页面被提交以刷新列表值。
  • 关于创建在提交之前运行的代码。您可以创建一个动态操作,使用 before submit 运行 pl/sql 代码。或者我建议在提交后或处理选项卡上的验证时运行它。
  • 除此之外,恐怕我想不出另一种解决方案,除了当用户选择一个值时页面真的需要提交吗?我只需要一个按钮,用户在选择一个选项后单击该按钮即可提交页面。
猜你喜欢
  • 2011-09-16
  • 1970-01-01
  • 2016-01-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多