用于网页的SQL Reporting Services查看器-我们可以移动"查看报告"按钮吗?

时间:2020-03-05 18:41:42  来源:igfitidea点击:

使用查看器控件在网页(Microsoft.ReportViewer.WebForms)上显示SQL Reporting Services报告时,可以移动"查看报告"按钮吗?它默认位于报表的最右边,这意味着我们必须一直滚动直到按钮可见。对于适合窗口宽度的报表来说,这不是问题,但是对于非常宽的报表,这很快就成为问题。

解决方案

回答

不可以,我们无法在ReportViewer控件中重新定位视图报告按钮。

但是,我们可以创建自己的自定义报告查看控件。该控件将包含用于报告参数的字段和一个用于生成报告的按钮。当用户单击按钮时,我们可以在后台生成报告。我们可以将报告显示为PDF,HTML等。

回答

这是一种hack,但是我们可以使用JavaScript进行移动。只需查看ReportViewer生成的HTML,然后编写相应的JavaScript代码即可移动按钮。我使用JavaScript隐藏了该按钮(因为我们想要我们自己的"查看报告"按钮)。任何操纵生成的ReportViewer HTML的JavaScript代码都必须位于.aspx页中的ReportViewer控件之后。这是隐藏按钮的代码,可让我们大致了解要执行的操作:

function getRepViewBtn() {
  return document.getElementsByName("ReportViewer1$ctl00$ctl00")[0];
}

function hideViewReportButton() { // call this where needed
  var btn = getRepViewBtn();
  btn.style.display = 'none';
}

回答

将按钮移到右侧的原因是参数的td的宽度为=" 100%"。我正在使用以下jquery解决此问题。它只是将参数td的宽度更改为1. 浏览器将自行将宽度扩展为元素内容的宽度。希望这可以帮助。

<script type="text/javascript">
    $(document).ready(function() {
        $("#<%= ReportViewer1.ClientID %> td:first").attr("width", "1");
    });
</script>