使用哪种类型的页面?
Which type of page to use?
我想建立一个页面,它绑定到单个 table 并且有 2 个基本列:文件数据作为 blob 和文件名作为 varchar。
因此页面中的每一行代表 table 中的一行。用户应该能够上传数据(无需刷新页面)、删除或下载现有数据。
问题是哪种类型的页面允许我通过为每一行添加文件 browse/upload 按钮来构建这样的页面?
顶点 5.1
如果我明白你想做什么,那将是一个表格页面(现在位于 Create 中的 Legacy pages 下page 向导),因为它允许您根据需要多次 添加 新行。
不幸的是,据我所知,您不能在其中使用 文件浏览 项。有 Display image 或 Download BLOB 项目类型,但其中 none 允许您上传图像。
另一种页面类型(我认为是从 5.1 开始可用),它是一种替换 表格页面的类型,是一种交互式网格。不过,同样适用于它 - 无法向其添加与 BLOB 上传相关的任何内容。
几年前,当我不得不开发一个类似于你的页面时(使用 Apex 4.x),我创建了一个 HTML 页面并手动添加了 10 个 "file browse" 项目其存储类型是 WWV_FLOW_FILES table(现已弃用;您可以改用 APEX_APPLICATION_TEMP_FILES)。
它工作正常,但只允许并行上传 10 个文件。这当然没有我们想要的那么好,但足以满足我们的需求。
我做了一些研究(现在),发现了几个关于同一主题的 OTN 论坛讨论,但是 none 的作者使它起作用。
也许您可以使用其他一些技术(例如JavaScript)来做您想做的事,但我真的不知道该怎么做。抱歉没能帮到您更好的。
这里有一些您可以考虑的选项,但根据您对@Littlefoot 的回答的评论,您可能觉得它们不合适。
1) 您可以在经典报表、交互式报表或交互式网格中将浏览、上传、删除和下载操作创建为 Link 类型的列。如果需要,链接可以打开模态表单,例如对于浏览,或者您可以使用动态操作让他们做一些定制的事情,例如运行 一些 Javascript。您可以使用 CSS 使链接看起来更像按钮。
2) 您可以在 SQL 查询中使用定制的 HTML 定义浏览等操作,将列类型设置为仅显示,并将 "Escape special characters" 设置为否。再次这可以通过 3 种报告类型中的任何一种来完成。例如:
select filename
, '<button type="button" id="browse-' || file_id || '">Browse</button>' browse
...
现在您可以使用动态动作让按钮做任何您想做的事情。
我想建立一个页面,它绑定到单个 table 并且有 2 个基本列:文件数据作为 blob 和文件名作为 varchar。
因此页面中的每一行代表 table 中的一行。用户应该能够上传数据(无需刷新页面)、删除或下载现有数据。
问题是哪种类型的页面允许我通过为每一行添加文件 browse/upload 按钮来构建这样的页面?
顶点 5.1
如果我明白你想做什么,那将是一个表格页面(现在位于 Create 中的 Legacy pages 下page 向导),因为它允许您根据需要多次 添加 新行。
不幸的是,据我所知,您不能在其中使用 文件浏览 项。有 Display image 或 Download BLOB 项目类型,但其中 none 允许您上传图像。
另一种页面类型(我认为是从 5.1 开始可用),它是一种替换 表格页面的类型,是一种交互式网格。不过,同样适用于它 - 无法向其添加与 BLOB 上传相关的任何内容。
几年前,当我不得不开发一个类似于你的页面时(使用 Apex 4.x),我创建了一个 HTML 页面并手动添加了 10 个 "file browse" 项目其存储类型是 WWV_FLOW_FILES table(现已弃用;您可以改用 APEX_APPLICATION_TEMP_FILES)。
它工作正常,但只允许并行上传 10 个文件。这当然没有我们想要的那么好,但足以满足我们的需求。
我做了一些研究(现在),发现了几个关于同一主题的 OTN 论坛讨论,但是 none 的作者使它起作用。
也许您可以使用其他一些技术(例如JavaScript)来做您想做的事,但我真的不知道该怎么做。抱歉没能帮到您更好的。
这里有一些您可以考虑的选项,但根据您对@Littlefoot 的回答的评论,您可能觉得它们不合适。
1) 您可以在经典报表、交互式报表或交互式网格中将浏览、上传、删除和下载操作创建为 Link 类型的列。如果需要,链接可以打开模态表单,例如对于浏览,或者您可以使用动态操作让他们做一些定制的事情,例如运行 一些 Javascript。您可以使用 CSS 使链接看起来更像按钮。
2) 您可以在 SQL 查询中使用定制的 HTML 定义浏览等操作,将列类型设置为仅显示,并将 "Escape special characters" 设置为否。再次这可以通过 3 种报告类型中的任何一种来完成。例如:
select filename
, '<button type="button" id="browse-' || file_id || '">Browse</button>' browse
...
现在您可以使用动态动作让按钮做任何您想做的事情。