0

所以基本上我有一个表格形式。其中一列是复选框,另一列称为“隐藏”,将包含值“是”或“否”。

我有一个隐藏行的按钮,因此用户应该能够使用复选框选择某些行,然后单击隐藏按钮,它应该在“隐藏”列下将用户选择的行更改为“是”

所以我的 SQL 看起来像这样:

UPDATE nameOfTable
SET hidden = 'Yes'
WHERE hidden = 'No';

显然,这只会将当前为“否”的所有行的“隐藏”列更新为“是”,但我如何改为仅更新用户使用复选框选择的行?

4

3 回答 3

2

您将要使用 HTMLBD_APPLICATION 包来执行此操作。当您创建表格形式时,APEX 会自动为表格中的每个可编辑字段分配一个 ID。当您单击提交按钮时,您将需要一个循环遍历表中选定项目的函数。您可以通过检查该表中该字段的 HTML 来找出 APEX 分配给每个字段的名称(它将是 HTML id,并且看起来像 G_FXX,其中 X 是一个数字)。您还必须在表中有一些字段来标识每一行(如主键),以便数据库知道要在后端更新哪一行。

BEGIN
  FOR i IN 1..HTMLBD_APPLICATION.G_F01.COUNT LOOP
    UPDATE nameoftable SET hidden = 'yes' WHERE
      HTMLDB_APPLICATION.G_FXX(HTMLDB_APPLICATION.G_F01(i)) = row_key;
  END LOOP;
END;

更新语句中的 XX 将是表中包含行 ID 的字段。这将获得选中框的列表,并通过列表循环更新已选中的每一行。

于 2012-10-31T15:29:56.053 回答
1
update nameoftable 
  set hidden='yes'
   where id =selectedcheckboxid

这里 id 是表的主键

于 2012-10-18T10:23:28.960 回答
1

只需将用户选择的主键 (id) 的值传递给数据库查询并将其与主键字段进行比较。显然@SRIRAM 的上述回答肯定会为你工作..!!

于 2012-10-18T10:33:11.457 回答