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 项目数组在提交时为空