在APEX中创建读/写页面

时间:2011-12-04 00:12:30

标签: oracle oracle-apex

我正在尝试找到一种简洁的方法来构建我的页面,以便可以使用相同的页面来读取记录的内容并进行编辑。例如:

  1. 您查看记录的页面。它的内容显示为text / whatever。
  2. 单击编辑按钮,值将显示在textareas,文本框,LOV等中。
  3. 我想在不为每条记录创建单独的编辑页面和查看页面的情况下执行此操作。我的想法是创建两个区域--ViewRecord和EditRecord - 并根据URL参数是否通过显示一个或另一个(但我不确定这是否简单/可能 - 我猜它可以完成在区域条件下,但是我不确定如何访问请求参数。)

    此类活动是否有共同/最佳做法?人们通常如何应对这种情况?

1 个答案:

答案 0 :(得分:1)

我创建了一个小例子,完成了请求值和条件显示,试试here。 设置如下:

treeview

Editmode按钮:注意条件:启用“编辑模式”时我不想看到此按钮 - > '当请求与写'不同时'告诉我'。此外,当您第一次进入页面时,请求将为NULL。将显示编辑按钮,因为NULL与WRITE不同。

Edit button code

Readmode按钮:大致相同。在条件中专门测试写入请求:当请求为空时,不显示按钮。

Read button code

表格形式的条件:

tabular form condition

对于阅读表格,条件如下。同样,请求与WRITE不同,因此报告将在请求为NULL时显示!

report condition

你怎么能以另一种方式解决这个问题?如果您想要更多动态操作,可以使用javascript。我有时做的是将readonly的输入属性设置为true,并将背景颜色更改为灰色。这将允许用户标记项目,但不允许他们编辑它。我将它们变灰以显示该字段不可编辑。不要将disable设置为true:它会破坏顶点功能,因为禁用的字段不会发布它们的值,而顶点需要它们。 例如:

$("input").attr("readonly", "true");
$("input[readonly='true']").css("background-color":"grey");

这会将页面上的每个输入字段设置为只读,并将其灰显。您可以使用按钮,链接,动态操作......来调用此代码。您的页面甚至不必提交或重新加载。

我经常使用它,因为我特别不想使用'显示项',甚至是'只读条件':它们将字段渲染为平面文本,并且难以区分标签和值。即使是表格(不是表格),我也喜欢使用这个技巧,我觉得使用起来更友好。

最佳实践:我不知道:)我自己通常采用'报表形式'的方式,但主要是因为客户也想要它。对他们来说,这是之后更容易理解和维护的方式。这取决于您和您的客户,我认为:这两种方法都不是很难,而且是纯粹的顶点!