我有一个使用 CrystalReportViewer 设置的 ASP.NET 站点。当用户打开报表时,会出现参数提示。如果他们在报告中遇到问题,则参数提示中没有关闭选项,并且似乎逃脱的唯一方法是使用浏览器的后退按钮退出。
这对我们不起作用,因为出于其他原因,已指示该站点上的用户不要使用后退按钮(此指令超出我的控制范围。)由于参数提示阻止了页面上的任何其他链接,用户不能点击退出。如何打开提示的关闭按钮?
我有一个使用 CrystalReportViewer 设置的 ASP.NET 站点。当用户打开报表时,会出现参数提示。如果他们在报告中遇到问题,则参数提示中没有关闭选项,并且似乎逃脱的唯一方法是使用浏览器的后退按钮退出。
这对我们不起作用,因为出于其他原因,已指示该站点上的用户不要使用后退按钮(此指令超出我的控制范围。)由于参数提示阻止了页面上的任何其他链接,用户不能点击退出。如何打开提示的关闭按钮?
如果有人仍然需要解决方案,这是我之前在 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);
}
好的,按设计,此功能似乎不存在于适用于 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 = ' ';
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"> Exit </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();
这已经过测试,似乎工作正常。