从URL添加页面不起作用,但单击“刷新”时页面工作

时间:2012-08-27 15:55:55

标签: oracle oracle-apex

我有一个显示如下客户列表的网址:

http://domain.com/pls/apex/f?p=724:2:820875406836801:::::

显示客户列表,标题链接到Page3&请求已有CustomerId

当我点击网址http://domain.com/pls/apex/f?p=724:3:21712451478201::NO:RP,3:P3_CUSTOMER_ID:82时,第3页正确加载了所选客户的详细信息。但“更新”和“删除”操作按钮永远不会起作用。

但是,如果我单击浏览器刷新按钮,然后尝试执行更新或删除,则可以正常工作。

我不知道哪里出错了。有人可以给我提示吗?

我没有在我的网址链接定义中使用BRANCH_TO_PAGE_ACCEPT

2 个答案:

答案 0 :(得分:2)

看起来您在第2页的网址中对会话ID进行了硬编码:

http://domain.com/pls/apex/f?p=724:2:820875406836801:::::

会话ID为820875406836801,而:

http://domain.com/pls/apex/f?p=724:3:21712451478201::NO:RP,3:P3_CUSTOMER_ID:82

会话ID已神秘地更改为21712451478201.我不确定,但我怀疑您已在第2页的报告中对会话ID进行了硬编码。这会导致创建新的登录会话当第3页打开时(也许这就是为什么更新/删除按钮不起作用 - 但你没有告诉我们错误信息是什么,所以我不确定);刷新页面可能正在恢复会话。

如果我是对的,您需要解决此问题的方法是在第2页的报告中使用会话变量(&SESSION.),而不是对其进行硬编码,例如:

http://domain.com/pls/apex/f?p=724:3:&SESSION.::NO:RP,3:P3_CUSTOMER_ID:82

答案 1 :(得分:0)

问题在于网址的创建方式。首先,我不应该只设置1个(标题)作为网址。它应该是整个div。如下所示。

<li><div style="">
<a href="f?p=&APP_ID.:2:&SESSION.::NO::P2_PK_PROJECT_ID:#LINK#" rel="external">
<h3>#TITLE#</h3>
<p><strong>#BOLD_TEXT#</strong></p>
<p>#PLAIN_TEXT#</p>
</a></div>
</li>

创建了包含上述代码的报告行模板。此模板在我的“客户列表”页面中使用。现在每个客户都是一个链接(标题,名称等)。链接href也是硬编码的。请注意,我正在传递ProjectID:#LINK ## LINK#指的是类似1,2等的值

现在点击此按钮,正确加载第2页并应用更改&amp;现在可以点击删除按钮。