Oracle ApEx Shuttle 和 Ajax On Demand 流程

Posted

技术标签:

【中文标题】Oracle ApEx Shuttle 和 Ajax On Demand 流程【英文标题】:Oracle ApEx Shuttle and Ajax On Demand Process 【发布时间】:2011-06-20 11:25:57 【问题描述】:

我正在尝试将 Shuttle 项目与 apex 集合一起使用,但是当我尝试通过按需进程将我的 P10_SHUTTLE 值添加到我的 apex 集合中时,虽然从左到右选择了 3 个值,但似乎没有任何东西被移植收藏。

此外,在尝试将值从集合返回到 P10_SHUTTLE 项后,再次没有任何返回。

在使用带有 AJAX 按需流程的穿梭物品方面有什么不同吗?

供您参考,我正在使用 Dene 的返回值的方法:请参阅:http://apex.oracle.com/pls/otn/f?p=31517:106:::NO

我基本上使用了与 Dene 的示例相同的所有代码

我不确定这是否与以下将值返回到航天飞机的过程有关,因为我的所有选择列表都有效,但航天飞机项目拒绝这样做,即:

if(l_El)
  if(l_El.tagName == 'INPUT')
    l_El.value = l_Value;
   else if(l_El.tagName == 'SPAN' && 
  l_El.className == 'grabber')
  l_El.parentNode.innerhtml = l_Value;
  l_El.parentNode.id = l_ID;
else
  l_El.innerHTML = l_Value;
 

使用此代码,我是否需要为 Shuttle 项目做一些不同的事情,即我也添加的 tagName == 'SELECT'

我很难理解为什么我在使用 Shuttles 和 Ajax 时遇到问题。

【问题讨论】:

【参考方案1】:

如果有疑问,总是值得使用浏览器的“查看源代码”选项来查看 Apex 在幕后所做的事情。在穿梭项目的情况下,这是由两个 HTML 选择列表控件组成的 Apex 构造。如果您的穿梭项目称为 P10_SHUTTLE,则 2 个选择列表称为 P10_SHUTTLE_LEFT 和 P10_SHUTTLE_RIGHT。

我刚刚在测试页面上创建了一个名为 P15_SHUTTLE 的简单穿梭,当我查看源代码时,我发现:

<label for="P15_SHUTTLE" tabindex="999"><a class="t20OptionalLabelwithHelp" href="javascript:popupFieldHelp('13520996209337433800','287302151803630')" tabindex="999">Shuttle</a></label></td> 
<td  colspan="1" rowspan="1" align="left" valign="middle"><input type="hidden" name="p_arg_names" value="13520996209337433800" /><fieldset id="P15_SHUTTLE" class="shuttle"> 
<table cellpadding="0" cellspacing="0" border="0" summary="" class="shuttle" ><tr> 
<td class="shuttleSelect1"> 
<select multiple="multiple" id="P15_SHUTTLE_LEFT" size="10" class="shuttle_left"> 
<option value="Alpha">Alpha</option> 
<option value="Beta">Beta</option> 
<option value="Gamma">Gamma</option> 
</select></td> 
<td align="center" class="shuttleControl"> 
<a  href="#" id="P15_SHUTTLE_RESET"><img src="/i/htmldb/icons/shuttle_reload.png"   /></a><a  href="#" id="P15_SHUTTLE_MOVE_ALL"><img src="/i/htmldb/icons/shuttle_last.png"   /></a><a  href="#" id="P15_SHUTTLE_MOVE"><img src="/i/htmldb/icons/shuttle_right.png"   /></a><a  href="#" id="P15_SHUTTLE_REMOVE"><img src="/i/htmldb/icons/shuttle_left.png"   /></a><a  href="#" id="P15_SHUTTLE_REMOVE_ALL"><img src="/i/htmldb/icons/shuttle_first.png"   /></a></td> 
<td class="shuttleSelect2"> 
<select multiple="multiple" id="P15_SHUTTLE_RIGHT" name="p_v01" size="10" class="shuttle_right"> 
</select></td> 
<td align="center" class="shuttleSort2"> 
<a  href="#" id="P15_SHUTTLE_TOP"><img src="/i/htmldb/icons/shuttle_top.png"   /></a><a  href="#" id="P15_SHUTTLE_UP"><img src="/i/htmldb/icons/shuttle_up.png"   /></a><a  href="#" id="P15_SHUTTLE_DOWN"><img src="/i/htmldb/icons/shuttle_down.png"   /></a><a  href="#" id="P15_SHUTTLE_BOTTOM"><img src="/i/htmldb/icons/shuttle_bottom.png"   /></a></td> 
</table></fieldset> 

【讨论】:

嗨@Tony Andrews,感谢您的回复,但基于您的视图源和简单示例,这一切都很好,但您能否在示例中添加右侧选择 Alpha 和 Beta 的方法,将这些值放入顶点集合中,然后通过按需过程将这些值检索回穿梭机。我在这个领域遇到了麻烦,存储和检索穿梭值。谢谢。 我不清楚你想做什么(我快速浏览了 Denes 的页面,但我不确定它的全部内容!) Tony,您可以尝试以下操作吗:1)创建一个不基于数据库列的穿梭项目 P10_SHUTTLE; 2)从让穿梭对面的右穿梭中选择2个项目; 3) 现在尝试使用 ajax on demand 过程将在穿梭中选择的值存储到顶点集合; 4)我在这里遇到的问题是它只使用了我选择的第一项而不是两个选择(Alpha 和 Beta - 只保存了 Alpha;5)假设您只存储了一个或两个值,再次使用 ajax,尝试并通过按需流程重新填充上述第 1 点中描述的 P10_SHUTTLE 项目。 你能贴出你试过的代码吗?我没有时间自己构建解决方案,但也许能够发现你的缺陷。

以上是关于Oracle ApEx Shuttle 和 Ajax On Demand 流程的主要内容,如果未能解决你的问题,请参考以下文章

Oracle Apex Shuttle 项目数组在提交时为空

Oracle Apex:Shuttle 没有将价值放在右侧并提供 null

Oracle Apex:在另一个项目更改时刷新项目

sql apex shuttle v2,connoar

APEX Shuttle - 获得更多选定值

SQL Plus 和 www.apex.oracle.com