代码之家  ›  专栏  ›  技术社区  ›  Carlton Jenke

用于网页的SQL Reporting Services查看器-是否可以移动“查看报告”按钮?

  •  5
  • Carlton Jenke  · 技术社区  · 16 年前

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

    5 回复  |  直到 6 年前
        1
  •  2
  •   Liron Yahdav    15 年前

    这有点像黑客,但是你可以用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';
    }
    
        2
  •  3
  •   Bryan Roth    16 年前

    不,不能在ReportViewer控件中重新定位“查看报告”按钮。

    但是,您可以创建自己的自定义报表查看控件。控件将由报表参数字段和生成报表的按钮组成。当用户单击按钮时,您可以在后台生成报告。您可以将报告显示为PDF、HTML等格式。

        3
  •  2
  •   Travis Collins    15 年前

    按钮向右推的原因是参数的td宽度为100%。我用下面的jquery解决这个问题。它只是将参数td的宽度更改为1。浏览器将自行将宽度扩展到元素内容的宽度。希望这有帮助。

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

    因为我昨天在寻找这个答案,我想我会把我想出的解决我们问题的办法贴出来。我们的报告正在返回范围,我们希望“查看报告”按钮存在于控件的左侧,这样就不需要滚动到该按钮。我确实需要进入渲染文件的源代码,以找到按钮和目标表的ID名称。

    我编写了一个简单的剪切粘贴javascript函数,将按钮从其原始位置拉出来,并将其放到日期选择器下面的包含表中的下一行。

    function moveButton() {
      document.getElementById('ParameterTable_ctl00_MainContent_MyReports_ctl04').appendChild(document.getElementById('ctl00_MainContent_MyReports_ctl04_ctl00'));
            }
    

    在报表查看器加载事件上调用此函数。

    ScriptManager.RegisterStartupScript(Me, Me.GetType(), "moveButton", "moveButton();", True)
    

    为了调整位置,我使用了CSS ID。

    #ctl00_MainContent_MyReports_ctl04_ctl00 {
        margin: 0px 0px 0px 50px;
    }
    
        5
  •  0
  •   Paul    6 年前

    我也遇到了同样的问题,最后在Travis Collins的答案上使用了一个扩展;除了更改表格列宽之外,我还将“查看报告”按钮左对齐,这样其他控件就不会再显示它。

        <script type="text/javascript">
      $(document).ready(function() {
         $("#_ctl0_MainContent_reportViewer_fixedTable tr:first td:first-child").attr("width", "1"); 
         $("#_ctl0_MainContent_reportViewer_fixedTable tr:first td:last-child").attr("align", "left");   
      });
    </script>
    

    您可能需要根据分配给现有控件的元素命名来调整jquery选择器。