IR多选批量处理后页面局部刷新

数据源sql

  1. 创建复选框

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
  1. 设置全选

CHECKBOX2列 列名标题设置为 <input type="checkbox" onclick="javascript:$f_CheckAll(this, this.checked, $('[name=f01]'));">

隐藏一切用户操作并取消转义

设置Ajax回调

  1. 创建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. 创建批量处理按钮设置重定向弹框页并设置两个动态事件(关闭对话框刷新,点击事件)

官网文档

参考博客文档

 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
    }
} 
                   );

弹框页设置

  1. 查询选中的数据

select C001 from APEX_COLLECTIONs where collection_name =‘USER_CHOOSE_DATA_ID’;

  1. 页项

根据自己的业务要求 此处省略

  1. 批量处理

根据自己的业务要求 此处省略

  1. 设置对话框关闭处理

comments powered by Disqus
使用 Hugo 构建
主题 StackJimmy 设计