麦粉社区
>
帖子详情

请问弹窗关闭后如何实现刷新 页面数据

电子表格软件 发表于 2026-5-20 09:28
发表于 2026-5-20 09:28:20

 


或者
//电子表格 客户端宏 对象spreadsheetReport 事件onRender
 
function main(spreadsheetReport, isAjaxRefreshCallback) {
    try {
        // 获取URL单元格内容
        var urlCell = spreadsheetReport.getCell("D3");
        // var url = urlCell.textContent ? urlCell.textContent.trim() : "";
        var url ="https://decsmartbi.cloud.smartbi.com.cn/smartbi/vision/openresource.jsp?resid=I0bb87da4c7fab000";
        // 获取链接单元格并设置点击事件
        var linkCell = spreadsheetReport.getCell("C1");
        var linkText = linkCell.textContent ? linkCell.textContent.trim() : "点击打开";
        // 设置可点击链接
        linkCell.innerHTML = '' + linkText + '';
        // 添加点击事件
        spreadsheetReport.addListener(linkCell, "click", function(event) {
            event.preventDefault();
            openInDialog(url);
        }, spreadsheetReport);
 
    } catch (error) {
        alert("宏执行失败: " + error.message);
    }
}
 
/**
 * 在对话框中打开URL
 * @param {string} url - 要打开的URL地址
 */
function openInDialog(url) {
    try {
        // 获取对话框工厂
        var dialogFactory = jsloader.resolve("freequery.dialog.dialogFactory");
        // 配置对话框
        var dialogConfig = {
            title: "网页预览",
            size: dialogFactory.size.LARGE,
            dialogType: "modeless",
            fullName: "freequery.dialog.BaseDialogEx",
            closeBeforeCallback: true
        };
        // 显示对话框
        dialogFactory.showDialog(dialogConfig, {});
        // 延迟设置内容
        setTimeout(function() {
            var elem = window.dialog.dialogBody;
            var btnOK = window.dialog.btnOK;
            var btnCancel = window.dialog.btnCancel;
 
            if (btnOK) btnOK.style.display = 'none';
            if (btnCancel) btnCancel.value = '关闭(C)';
            if (elem) elem.innerHTML = '';
        }, 500);
 
    } catch (error) {
        alert("无法打开对话框: " + error.message);
    }
}
怎么可以让这个点击单元格的弹窗关闭后刷新页面数据?

发表于 2026-5-20 09:28:21

首先在 main 中声明一个全局变量
window.sp = spreadsheetReport;


然后声明一个回调函数


 function dialogCallback(ret) {


     window.sp.doRefresh();


 }


 


在弹窗函数的调用中,引入这个回调函数就行


   dialogFactory.showDialog(dialogConfig, data, dialogCallback);


回复

使用道具 举报

发表于 2026-5-20 11:02:53
你这个有点乱,我这看还有社区的界面,是写错了吗?
  •   佩佩
    嘿,图片没发成功,这个内容是脚本。
    给单元格添加了弹窗。
    想在关闭弹窗后,刷新页面数据
    2026-5-20 15:49| 回复
  •   佩佩
    就是图这个,怎么可以让关闭弹窗后,刷新页面数据,不用手动点刷新
    2026-5-20 16:09| 回复

回复

使用道具 举报

发表于 2026-5-21 10:08:43
理论上应该是
dialogFactory.showDialog(dialogConfig, {}, 回调函数,函数参数 );
参考ai改的
337866a0e67f8618eb.png 350746a0e691895dcc.png

回复

使用道具 1 举报

发表于 2026-5-21 14:19:24
可以简化。
回复

使用道具 举报

高级模式
B Color Image Link Quote Code Smilies
您需要登录后才可以回帖 登录 | 立即注册

8回帖数 0关注人数 489浏览人数
最后回复于:2026-5-21 14:19

社区

指南

AI

搜索

快速回复 返回顶部 返回列表