【发布时间】:2020-06-02 17:27:06
【问题描述】:
我有一个交互式网格,其中包含超过 200000 行数据。除了下面列出的页码之外,有什么方法可以让我有一个下拉选择列表,其中包含诸如 1-40 条记录、40-80 条记录等选项。这样用户就可以直接到报表的末尾了。
有什么方法可以实现吗?
【问题讨论】:
标签: oracle-apex oracle-apex-5.1
我有一个交互式网格,其中包含超过 200000 行数据。除了下面列出的页码之外,有什么方法可以让我有一个下拉选择列表,其中包含诸如 1-40 条记录、40-80 条记录等选项。这样用户就可以直接到报表的末尾了。
有什么方法可以实现吗?
【问题讨论】:
标签: oracle-apex oracle-apex-5.1
所以你本质上需要的是一个足够大的 SELECT 序列。 我认为这应该适合你
select LEVEL
FROM DUAL
CONNECT BY LEVEL <= CEIL(:rowcount / 40);
它的作用是创建一个直到 CEIL(:rowcount/40) 数字的序列,因此如果该数字为 3,则结果为 1、2、3。
然后您可以使用它来显示 0-40、40-80、80-120、... 希望这能满足您的需求。
编辑回答评论(更改底部的总行数):
我认为这在 APEX 中是不可能实现的,但可以用 js 来完成。
我建议您制作一个在启动时运行的 DA,并且每次更改您现在使用的选择列表时。 DA 会在下面生成你想要的当前文本,比如选择 40-80 你说“1 of 567”或其他什么,然后你必须用 js 设置这个文本。
如果您还没有习惯 js 控制台,您将不得不习惯。
您必须为网格设置一个静态 ID,然后运行如下所示的 js:
var temp = $("span#dn_main_ig_grid_vc_pageRange")[0]
temp.children[1].innerText = "text"
其中 dn_main 是我的网格的静态 ID,所以用你的替换它。您应该打开控制台并一步一步地查看您在每一步中选择的内容。然后,一旦您了解这是做什么的,您就可以在您的 DA 中使用它来将“文本”更改为您需要的任何内容。
而对于在js中获取页面项的值,万一你不熟悉, https://apex.oracle.com/pls/apex/germancommunities/apexcommunity/tipp/6341/index-en.html
希望对你有帮助
【讨论】: