2010-01-26 5 views
1

ReportViewer를 asp.net mvc (C#) 응용 프로그램에 사용하고 있습니다. IE와 Firefox에서는 보고서 뷰어가 정상적으로 보입니다.Google 크롬의 ReportViewer 문제

하지만 Chrome에서는 머리글과 본문이 축소됩니다. http://www.mazsoft.com/blog/post/2009/08/13/ReportViewer-control-toolbar-in-Google-Chrome-browser.aspx에서 제안 된대로 헤더 표시 문제를 해결할 수있었습니다.

if ($.browser.safari) { 
     $("#ReportViewerControl table").each(function(i, item) { 
     $(item).css('display', 'inline-block'); 
     }); 
    } 

하지만 본문 (뷰어) 부분은 여전히 ​​화면 절반에있는 것으로 보입니다. 문제가 테이블의 빈 제 td의 폭 것으로 보인다 :

<table cellspacing="0" cellpadding="0"> 
    <tbody> 
    <tr> 
     <td onpropertychange="ShowFixedHeaders()" id="oReportCell">....Some Data...</td> 
     <td height="0" width="100%"></td> 
    </tr> 
    </tbody> 
</table> 

상기 테이블의 두번째 TD 100 % 폭 비어, 이것은 크롬 버그의 원인이 될 수있다. 어떻게 두 번째 TD의 너비를 제거 할 수 있습니까? 아니면이 문제가 있습니까? ReportViewer Design http://www.freeimagehosting.net/uploads/13114a4f00.png

중첩 된 iframe 내부의 요소에 어떻게 액세스합니까? 더 jQuery로

+0

실제 문제는의 ReportViewer가 iframe을 중첩 된 수 있습니다. 그 jQuery를 사용하여 "oReportCell"을 찾을 수 없습니다. 내 질문에 내가 액세스 할 필요가있는 셀을 강조한 이미지로 업데이트했습니다. – Prasad

답변

1

시도는 어쩌면이 비록

$().ready(function() { 
    $('#ReportViewerControl table td[width="100%"]').attr('width',''); 
}); 

아마 보고서의 다른 항목에 영향을 미칠 것인가?

+1

$ ("td # oReportCell") 다음() – queen3

3

동일한 문제가있어서 jQuery로 해결했습니다. 보고서 뷰어는 iframe을 사용하기 때문에 제거해야 할 요소가 <TD> 인 것은 쉽지 않습니다. 나는 다양한 방법을 시도하고 마침내 다음과 같은 해킹에 정착했다. 그것은 아마도 그것이 될 수있는만큼 좋지는 않지만, 그것은 나를 위해 일합니다.

우선은 <DIV>에 보고서 뷰어를 포장하고 숨길 :

<div id="rpt-container" style="display: none;"> 
    <rsweb:ReportViewer ID="rptViewer" Width="99.9%" BackColor="#eeeeee" 
      runat="server" ShowExportControls="False"> 
    </rsweb:ReportViewer> 
</div> 

는 그럼 난 크롬에서 성공적으로 렌더링을 가능하게 제거 할 요소를 찾기 위해 다음과 같은 jQuery를 스 니펫 (snippet)을 추가했다.

<script type="text/javascript"> 
    $().ready(function() { 
     setTimeout(function(){ 
      $('td#oReportCell', window.parent.frames[0].frames[1].document).next().remove(); 
      $("#rpt-container").fadeIn(); 
      }, 300); //slight delay to allow the iframe to load 
    }); 
</script> 

frameReady 플러그인을 사용해 보았지만 많은 행운이 없었습니다. 그래서 타협으로 iframe 내부에서 DOM 요소를 선택하기 전에 약 300 밀리 초의 지연을 설정했습니다. 보고서를 숨기거나 페이드 아웃하지 않으면 요소가 제거되면서 추한 애니메이션이 보입니다.

2

내 aspx 페이지에서 ReportViewer와 비슷한 문제가 있습니다. IE9에서는 테이블의 마지막 TD 요소가 width=100%이므로 보고서의 모든 필드가 축소되었습니다. 나는이 DOCTYPE 요소, 다음 보고서의 필드가 축소되지 않습니다 삭제하면 내 aspx 페이지에서

, 나는

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 

를 사용합니다.

5

Reportviewer가 데이터를 표시하지 않거나 브라우저에서 렌더링되지 않은 경우 ASP에서 다음을 수행하십시오.NET 페이지 :

바꾸기 다음 태그

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 

는 :

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> 
+0

@AndrewBarber : 앞으로 이런 유형의 것을 시도하지 않을 것입니다. 편집 해 주셔서 감사합니다. – RKK

+0

당신은 매우 환영합니다 :) –

관련 문제