0

我有一个使用 CrystalReportViewer 设置的 ASP.NET 站点。当用户打开报表时,会出现参数提示。如果他们在报告中遇到问题,则参数提示中没有关闭选项,并且似乎逃脱的唯一方法是使用浏览器的后退按钮退出。

这对我们不起作用,因为出于其他原因,已指示该站点上的用户不要使用后退按钮(此指令超出我的控制范围。)由于参数提示阻止了页面上的任何其他链接,用户不能点击退出。如何打开提示的关闭按钮?

4

2 回答 2

2

如果有人仍然需要解决方案,这是我之前在 SAP 论坛上写的另一个更简单的解决方案,并且不会向页面中注入任何内容。关闭按钮实际上已经存在,他们只是隐藏了它。

http://scn.sap.com/message/14895166#14895166

从你的 $(document).ready 调用这个函数。它会每 1/3 秒自动触发一次,直到参数框的关闭按钮设置为可见。在那之后,它将停止运行。我通过使用 Chrome 的“检查对象”功能找到了这个 div 及其类。

祝你好运。

window.$my = {    
     dlgCloseBtn: $('div.dlgCloseBtn')    
};

$(document).ready(function() {    
     enableDlgCloseBtn();    
});

/*
** Loops every third of a second until the parameter box's Close button can be made visible.
*/
function enableDlgCloseBtn() {
     if ($my.dlgCloseBtn.css('visibility') === undefined) {
          $my.dlgCloseBtn = $('div.dlgCloseBtn');

     } else if ($my.dlgCloseBtn.css('visibility') !== 'visible') {
          $my.dlgCloseBtn.css('visibility', 'visible');
          return;
     }

     window.setTimeout(enableDlgCloseBtn, 333);
}
于 2015-05-28T05:15:21.200 回答
1

好的,按设计,此功能似乎不存在于适用于 Web 的 Crystal Report Viewer 中。为了解决这个问题,我为我的页面编写了一些 Javascript,在参数提示中注入了一个自制的“退出”按钮:

// Forces an exit button into the parameter prompt
function addExitButton() {
    // "ReportViewer" is the name of my CRV, replace with yours
    // Also, you will probably need to adjust the path to the button image URLs
    var okButton = document.getElementById('ReportViewer_submitButton');
    if (okButton != null) {
        var exitLink = '<<URL you want the Exit button to link to here>>';
        var row = okButton.parentNode.parentNode.parentNode;
        if (row != null) {
            var spacer = document.createElement("td");
            spacer.innerHTML = '&nbsp;';
            row.appendChild(spacer);
            var startCell = document.createElement("td");
            startCell.innerHTML = '<img src="../crystalreportviewers13/prompting/images/button_left_normal.gif" />';
            row.appendChild(startCell);
            var cell = document.createElement("td");
            cell.setAttribute("class", "pePromptButton");
            cell.setAttribute("background", "../crystalreportviewers13/prompting/images/button_middle_normal.gif");
            cell.innerHTML = '<div class="pePromptButton"><a href="' + exitLink + '" title="Exit">&nbsp;&nbsp;&nbsp;Exit&nbsp;&nbsp;&nbsp;</a></div>';
            row.appendChild(cell);
            var endCell = document.createElement("td");
            endCell.innerHTML = '<img src="../crystalreportviewers13/prompting/images/button_right_normal.gif" />';
            row.appendChild(endCell);
        }
    }
    else
        setTimeout(addExitButton, 10);
}
addExitButton();

这已经过测试,似乎工作正常。

于 2012-05-17T22:21:22.917 回答