Oracle apex左右拖拽框设计
效果
页面代码
其中 List of values 表示左侧拖拽框的值集,格式为 【显示名,编号】,以逗号分隔;
Default表示默认已拖拽到右侧框的值集,格式为【编号1:编号2】,以冒号分隔;
将右侧值集保存到数据库
添加页面处理程序,选择程序类型为PL/SQL
declare tab apex_application_global.vc_arr2; v_sql varchar2(500); begin --拼接删除右侧框移除列的sql v_sql := 'delete sys_role_privs where role_id = ' || :P10046_ROLE_ID ; if :P10046_SHUTTLE is not null then v_sql := v_sql || ' and priv_id not in ( ' || replace(:P10046_SHUTTLE,':',',') || ')'; end if ; execute immediate v_sql ; --将新增加的列添加到数据库 tab := apex_util.string_to_table (:P10046_SHUTTLE); for i in 1..tab.count loop merge into sys_role_privs srp using (select :P10046_ROLE_ID rid ,tab(i) pid from dual ) src on (srp.role_id = src.rid and srp.priv_id = src.pid ) when not matched then insert (srp.role_id,srp.priv_id) values ( :P10046_ROLE_ID , tab(i) ) ; end loop; commit; end;