2011-08-18 3 views
2

웹 페이지에 Microsoft ReportViewer 컨트롤이 있습니다. 그러나 누군가가 매개 변수 중 하나에 대해 유효하지 않은 입력을 입력하면 보고서가 있어야하는 다소 비우호적 인 오류 메시지가 표시됩니다. 예를 들면 다음과 같습니다. The value provided for the report parameter 'pToDate' is not valid for its type. (rsReportParameterTypeMismatch)Microsoft ReportViewer 컨트롤 (웹) 및 오류 메시지 표시

컨트롤은 "To Date"및 "pToDate"가 매개 변수의 내부 이름 인 정보를 입력하라는 메시지를 표시합니다. 사용자가이를 알지 못하거나 "rsReportParameterTypeMismatch"에 잘 반응하지 않습니다 (사용자가 생각하는 동안!)

ReportViewer 컨트롤에 어딘가에 넣을 수 없습니다 모든 오류 또는 사용자 지정 메시지, 내 솔루션은 더 친숙한 오류 메시지를 넣어 레이블을 만드는 것이 었습니다. 이는 우호적 인 오류 메시지가 표시되는 한 작동합니다.

내 문제는 일단 사용자가 실수를 수정하고 "보고서보기"를 클릭하면 보고서가 표시되지만 오류 메시지가 계속 표시된다는 것입니다. 라벨 텍스트를 string.Empty으로 설정 했으므로 라벨을 Visible = false으로 설정했습니다. 나는 여러 곳에서 이것을 시도했지만, 코드가 맞았지만 아무 소용이 없도록했다.

ReportViewer 컨트롤을 사용하여 사용자 지정 메시지가 나타나고 사라지는 방법이 있습니까?

답변

0

좋아 - 내가있어 작동 뭔가

나는이 있었다 이전 :이 같은 뒤에 코드에서 업데이트 된

<asp:Label runat="server" ID="ReportErrorMessage" Visible="false" CssClass="report-error-message"> 
</asp:Label> 

:

ReportErrorMessage.Text = GetErrorMessage(reportException); 
ReportErrorMessage.Visible = true; 

을 다음 제거 이렇게 :

ReportErrorMessage.Visible = false; 
ReportErrorMessage.Text = string.Empty; 

후자의 부분이 작동하지 않았습니다.

결국 ReportViewer 컨트롤이 부분 렌더링을 사용하고있어서 레이블을 실제로 변경하지 못했다는 사실을 깨달았습니다. (사실, 초기 화면이 실제로 어떻게 작동했는지 알지 못했지만 어쨌든 .. . 나는 또한 내 블로그에 자세한 설명을 추가했습니다

<asp:UpdatePanel runat="server"> 
    <ContentTemplate> 
     <asp:Label runat="server" ID="ReportErrorMessage" Visible="false" CssClass="report-error-message"> 
     </asp:Label> 
    </ContentTemplate> 
</asp:UpdatePanel> 

UPDATE :) 솔루션은이 같은 업데이트 패널에 레이블을 래핑하는

했다 : Friendly Error Messages with Microsoft Report Viewer

관련 문제