所以基本上我有一个表格形式。其中一列是复选框,另一列称为“隐藏”,将包含值“是”或“否”。
我有一个用于隐藏行的按钮,因此用户应该能够使用复选框选择某些行,然后单击隐藏按钮,它应该将用户选择的行更改为“隐藏”下的“是”柱
所以我的SQL看起来像这样:
UPDATE nameOfTable
SET hidden = 'Yes'
WHERE hidden = 'No';
显然,对于当前“不”的所有行,这只会将“隐藏”列更新为“是”,但是如何使用复选框更新用户选择的行?
答案 0 :(得分: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;
update语句中的XX将是表中包含该行id的字段。这将获得一个选中框的列表,并通过列表循环更新已检查的每一行。
答案 1 :(得分:1)
update nameoftable
set hidden='yes'
where id =selectedcheckboxid
这里id是表的主键
答案 2 :(得分:1)
只是将用户选择的主键(id)的值传递给数据库查询,并将其与主键字段进行比较。显然@SRIRAM的上述答案肯定会对你有用.. !!