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

咨询:模型驱动应用中表单退出时关闭侧边窗格的实现方法

模型驱动应用:离开表单时自动关闭侧边窗格的实现方案

问题背景

在模型驱动应用中,打开Ideas表记录表单时会自动加载展示当前记录详情的自定义页面侧边窗格,但用户点击返回按钮、通过左侧菜单切换至其他表/视图时,侧边窗格仍保持打开状态,显示已关闭记录的内容。尝试将关闭脚本绑定至表单OnSave事件仅在「保存并关闭」时生效,且未找到表单的OnExit/OnClose/OnUnload处理入口。

解决方案

方法1:利用表单OnUnload事件触发关闭

模型驱动应用的表单实际提供了OnUnload事件,该事件会在用户离开表单(包括返回网格、切换菜单、打开其他记录等场景)时触发,具体配置步骤如下:

  • 打开Ideas表的表单设计界面
  • 切换至「事件」选项卡,找到「表单」区域下的「OnUnload」事件
  • 添加包含closeAllPanes函数的脚本库,选择该函数作为事件处理程序
  • 勾选「传递执行上下文」选项,保存并发布表单

方法2:全局监听导航事件(全局生效)

若需要在整个应用中,任何页面导航操作都自动关闭侧边窗格,可通过全局导航事件监听实现:

  1. 在现有脚本库中添加全局监听注册函数:
function registerNavigationListener() {
    // 监听应用内的导航事件
    Xrm.App.addGlobalEventHandler("navigate", function() {
        closeAllPanes();
    });
}
  1. 将registerNavigationListener函数绑定至Ideas表单的「OnLoad」事件(或应用全局OnLoad事件),确保页面加载时完成监听注册

已验证的关闭脚本

function closeAllPanes() {
    var allPanes = Xrm.App.sidePanes.getAllPanes();
    allPanes.forEach(function(pane) {
        pane.close().catch(function(error) {
            console.error("关闭侧边窗格出错: ", error);
        });
    });
    console.log("侧边窗格已关闭。")
}

注意事项

  • 确保脚本库已正确上传并发布至环境
  • 测试时打开浏览器开发者工具,查看控制台输出确认函数是否触发
  • 若使用OnUnload事件,需确认表单未禁用该事件的默认行为

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.15 15:03:21