数据源sql
- 创建复选框
apex_item文档
1
2
3
4
5
6
7
8
9
10
11
12
|
select EMPNO,
ENAME,
APEX_ITEM.CHECKBOX2(1,EMPNO) as CHECKBOX2,
JOB,
MGR,
HIREDATE,
SAL,
COMM,
DEPTNO,
DNAME,
LOC
from EMP_DEPT_V
|
- 设置全选
CHECKBOX2列 列名标题设置为
<input type="checkbox" onclick="javascript:$f_CheckAll(this, this.checked, $('[name=f01]'));">
隐藏一切用户操作并取消转义

设置Ajax回调
- 创建Ajax回调处理名字
GET_ID_INTO_COLL
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
|
declare
l_exists boolean;
begin
/*
l_exists := APEX_COLLECTION.COLLECTION_EXISTS(
p_collection_name => 'USER_CHOOSE_DATA_ID');
if not l_exists then
APEX_COLLECTION.CREATE_OR_TRUNCATE_COLLECTION(
p_collection_name => 'USER_CHOOSE_DATA_ID'
);
end if;
*/
-- 清空
APEX_COLLECTION.CREATE_OR_TRUNCATE_COLLECTION(
p_collection_name => 'USER_CHOOSE_DATA_ID'
);
-- 插入前台传的值
FOR i IN 1..APEX_APPLICATION.G_F01.COUNT
LOOP
APEX_COLLECTION.ADD_MEMBER(
p_collection_name => 'USER_CHOOSE_DATA_ID',
p_c001 => APEX_APPLICATION.G_F01(i));
end loop;
-- 响应前台的请求
apex_json.open_object; -- {
apex_json.close_all; -- }
end;
|

设置动态操作
- 创建批量处理按钮设置重定向弹框页并设置两个动态事件(关闭对话框刷新,点击事件)
官网文档
参考博客文档

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
|
// 获取选中的数据 并写入列表
var f01_arr = [];
jQuery("input[name=f01]:checked").each(
function (i) {
f01_arr[i] = $(this).val();
}
)
// 同步请求后台将 选中的ID插进集合
apex.server.process("GET_ID_INTO_COLL", {
f01: f01_arr
}, {async: false, // 一定要关闭异步
success: function( data ) {
// do something here
},
error: function( jqXHR, textStatus, errorThrown ) {
// handle error
}
}
);
|
弹框页设置
- 查询选中的数据
select C001
from APEX_COLLECTIONs where collection_name =‘USER_CHOOSE_DATA_ID’;
- 页项
根据自己的业务要求 此处省略
- 批量处理
根据自己的业务要求 此处省略
- 设置对话框关闭处理
