【问题标题】:Telerik report in a popup won't open a second time弹出窗口中的 Telerik 报告不会再次打开
【发布时间】:2012-06-19 16:30:32
【问题描述】:

我在 Telerik MVC 弹出窗口中显示 Telerik 报告,该窗口在客户端代码中实例化。第一次一切正常——报告正常显示。

但是,如果窗口关闭(因为它会关闭)并且用户再次单击打开弹出窗口的页面上的按钮,则弹出窗口会打开,但不会出现报告内容。这是客户端代码:

$(document).ready(function () {

    $('#printButton').click(function () {
        var printPopup = $.telerik.window.create({
            title: "Resident Account Report",
            contentUrl: '/myApp/ReportPages/ReportPage.aspx' + '?rpt=myReport&ID=' + @Model.id,
            actions: ["Refresh", "Maximize", "Close"],
            height: 600,
            width: 1100,
            modal: true,
            resizable: true,
            draggable: true,
            scrollable: false,
            onRefresh: function () {
                var myWindow = $(this).data('tWindow');
                myWindow.center().open();
            }
        });
    });
});

问题是因为第一个弹出实例仍然存在于 DOM 中,需要被释放吗?

【问题讨论】:

    标签: asp.net-mvc dom telerik-mvc telerik-reporting


    【解决方案1】:

    我确信您在上面解释的问题正是原因所在。关闭 MVC 弹出窗口不会释放加载到 MVC 弹出窗口中的对象。因此,您可以为每个弹出窗口处理并重新加载报告模块,或者只使用将报告内容从原始页面导出到您的弹出窗口,这样您的内容将始终位于父窗口中,并且弹出窗口将仅用于查看导出的报告数据。

    【讨论】:

    • 如何在 .net core 中处理报表模块?报表查看器会启动一个新窗口,但有时它不会加载报表。我假设这是因为查看器在上次使用时没有被处理掉?
    【解决方案2】:

    我知道这个问题已经有将近 1.5 年的历史了,但是我遇到了同样的问题并且我有一个解决方案,所以为将来会遇到这个问题的兄弟们分享解决方案。

    在我的例子中,我从 Action 返回整个视图以响应 ajaxRequest()。在这种情况下,它还会返回所有与现有文件冲突的 JS 文件、CSS 文件等。

    当我改变我的动作以返回部分视图时,一切都像魅力一样。

    谢谢你, 桑德什·达迪

    【讨论】:

    • 这也是我完成这项任务的方式。 +1
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-11-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多