웹페이지용 SQL Reporting Services 뷰어 - 보고서 보기 버튼을 이동할 수 있습니까?

StackOverflow https://stackoverflow.com/questions/20744

문제

웹 페이지(Microsoft.ReportViewer.WebForms)에 SQL Reporting Services 보고서를 표시하기 위한 뷰어 컨트롤을 사용하면 보고서 보기 단추를 이동할 수 있습니까?기본값은 보고서의 맨 오른쪽입니다. 즉, 버튼이 표시되기 전에 끝까지 스크롤해야 합니다.창 너비에 맞는 보고서에서는 문제가 되지 않지만 매우 넓은 보고서에서는 빠르게 문제가 됩니다.

도움이 되었습니까?

해결책

일종의 해킹이지만 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';
}

다른 팁

아니요, ReportViewer 컨트롤에서는 보고서 보기 버튼의 위치를 ​​변경할 수 없습니다.

그러나 고유한 사용자 정의 보고서 보기 컨트롤을 만들 수 있습니다.컨트롤은 보고서 매개변수 필드와 보고서 생성 버튼으로 구성됩니다.사용자가 버튼을 클릭하면 백그라운드에서 보고서를 생성할 수 있습니다.보고서를 PDF, HTML 등으로 표시할 수 있습니다.

버튼이 오른쪽으로 밀리는 이유는 매개변수의 td가 width="100%"이기 때문입니다.다음 jquery를 사용하여 이 문제를 해결하고 있습니다.단순히 매개변수 td의 너비를 1로 변경합니다.브라우저는 요소 내용의 너비에 맞춰 너비를 자체적으로 확장합니다.도움이 되었기를 바랍니다.

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

바로 어제 이 답변을 검색하고 있었기 때문에 문제를 해결하기 위해 제가 생각해낸 내용을 게시해야겠다고 생각했습니다.보고서가 다시 넓게 표시되고 있었고 "보고서 보기" 버튼이 컨트롤 왼쪽에 존재하여 버튼을 찾기 위해 스크롤할 필요가 없었으면 했습니다.버튼과 대상 테이블의 ID 이름을 찾으려면 렌더링된 파일의 소스로 이동해야 했습니다.

버튼을 원래 위치에서 끌어와 날짜 선택기 아래 포함 테이블의 다음 행에 놓는 간단한 잘라내기 및 붙여넣기 자바스크립트 함수를 작성했습니다.

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;
}

나는 같은 문제가 있었고 결국 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 선택기를 조정해야 할 수도 있습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top