You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Oracle APEX v24.1交互网格自定义Save按钮按需启用/禁用咨询

实现Interactive Grid复选框变化时启用Save按钮(APEX 24.1)

步骤1:设置静态ID

  • 给你的Interactive Grid设置静态ID(在IG属性面板的「Advanced」标签下),比如EMP_CHECKBOX_IG
  • 给自定义Save按钮设置静态ID(按钮属性面板的「Advanced」标签下),比如IG_SAVE_BTN

步骤2:添加JavaScript监听逻辑

在页面的Function and Global Variable Declaration中粘贴以下代码(替换对应ID):

$(document).ready(function() {
    // 替换为你的IG静态ID
    const igStaticId = 'EMP_CHECKBOX_IG';
    // 替换为你的Save按钮静态ID
    const saveBtnId = 'IG_SAVE_BTN';

    const igRegion = apex.region(igStaticId);
    const saveBtn = $('#' + saveBtnId);

    // 页面加载时禁用Save按钮
    saveBtn.prop('disabled', true);

    // 监听IG的数据变化事件(包括复选框状态修改)
    igRegion.widget().interactiveGrid('getViews','grid').model.subscribe(
        function() {
            // 检查模型是否有未保存的更改
            const hasUnsavedChanges = igRegion.widget().interactiveGrid('getViews','grid').model.hasChanged();
            // 根据是否有更改切换按钮状态
            saveBtn.prop('disabled', !hasUnsavedChanges);
        },
        null,
        'dataChange'
    );

    // 可选:如果Clear按钮需要重置Save状态,给Clear按钮加动态动作执行以下代码
    // $('#' + saveBtnId).prop('disabled', true);
});

步骤3:验证逻辑

  • 页面加载完成后,Save按钮默认处于禁用状态
  • 点击任意复选框修改状态,Save按钮自动启用
  • 如果通过Clear按钮重置网格,Save按钮会重新禁用(需给Clear按钮添加对应动态动作)

关键说明

  • 这里利用了APEX Interactive Grid的model.subscribe方法监听dataChange事件,能准确捕获所有数据修改(包括复选框切换)
  • model.hasChanged()方法会自动判断IG是否有未提交的更改,无需手动遍历复选框状态

内容的提问来源于stack exchange,提问作者Bhavin Adhvaryu

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.12 21:42:43