【问题标题】:Display many reports in one view by ViewBag通过 ViewBag 在一个视图中显示多个报告
【发布时间】:2016-08-05 12:02:28
【问题描述】:

我想在一个视图中显示很多报告,但每个 div 中只显示一个。 我有以下控制器代码:

ReportViewer rptViewer1 = new ReportViewer();

rptViewer1.ProcessingMode = ProcessingMode.Remote;
rptViewer1.SizeToReportContent = true;
rptViewer1.ZoomMode = ZoomMode.FullPage;

rptViewer1.AsyncRendering = true;

rptViewer1.ServerReport.ReportServerUrl = new Uri("MyServerAddress");
rptViewer1.ServerReport.ReportPath = "MyPath";

rptViewer1.ServerReport.ReportServerCredentials = new ReportViewerCredentials("MyCredentials");

ViewBag.ReportViewer1 = rptViewer1;

ReportViewer rptViewer = new ReportViewer();

rptViewer.ProcessingMode = ProcessingMode.Remote;
rptViewer.SizeToReportContent = true;
rptViewer.ZoomMode = ZoomMode.FullPage;

rptViewer.AsyncRendering = true;

rptViewer.ServerReport.ReportServerUrl = new Uri("MyServerAddress2");
rptViewer.ServerReport.ReportPath = "MyPath2";

rptViewer.ServerReport.ReportServerCredentials = new ReportViewerCredentials("MyCredentials");

ViewBag.ReportViewer = rptViewer;
return View();

以及查看代码:

<div class="col-md-4">
   @Html.ReportViewer(ViewBag.ReportViewer as Microsoft.Reporting.WebForms.ReportViewer, new { frameborder = "0", width = "500", height = "500", style = "overflow:hidden;", scrolling = "no" })
</div>
<div class="col-md-4">
    @Html.ReportViewer(ViewBag.ReportViewer1 as Microsoft.Reporting.WebForms.ReportViewer, new { frameborder = "0", width = "500", height = "500", style = "overflow:hidden;", scrolling = "no" })
</div>
<div class="col-md-4">
    @Html.ReportViewer(ViewBag.ReportViewer as Microsoft.Reporting.WebForms.ReportViewer, new { frameborder = "0", width = "500", height = "500", style = "overflow:hidden;", scrolling = "no" })
</div>

当我运行页面时,我有

3 相同

在一行中报告。我不知道问题出在哪里以及为什么我不能显示 2 个独特的报告。我看不出它在哪里迷恋,因为它编译没有问题。 2 个报告地址是有效的,我每次都可以显示其中一个。

哪里有问题?

【问题讨论】:

    标签: c# .net asp.net-mvc razor reporting-services


    【解决方案1】:

    它显示相同的报告,因为当 DOM 完全加载 它只考虑 last reportviewer,我的一个代码中也有同样的问题,然后我尝试了下面,请看看它可能对你有帮助。

        <div class="row">
        <div class="col-md-6">
            <div class="col-md-12">
                @Html.Partial("DisplayClassesListFilter", null, new ViewDataDictionary { { "GridId", "classList1" }, { "GridParentDivId", "divClassList1" } })
            </div>
    
            <div class="col-md-12 classlist1 m-bottom25">
                @Html.Partial("_ClassListWithoutPaging", null, new ViewDataDictionary { { "DisplayClasses", true }, { "Controller", "DisplayClasses" }, { "Action", "GetAllClassWithoutPaging" }, { "SearchFunctionName", "BuildSearchCriteriaDisplayClasses1" }, { "GridId", "classList1" }, { "GridParentDivId", "divClassList1" } })
            </div>
    
        </div>
    
        <div class="col-md-6">
            <div class="col-md-12">
                @Html.Partial("DisplayClassesListFilter", null, new ViewDataDictionary { { "GridId", "classList2" }, { "GridParentDivId", "divClassList2" } })
            </div>
    
            <div class="col-md-12 classlist2 m-bottom25">
                @Html.Partial("_ClassListWithoutPaging", null, new ViewDataDictionary { { "DisplayClasses", true }, { "Controller", "DisplayClasses" }, { "Action", "GetAllClassWithoutPaging" }, { "SearchFunctionName", "BuildSearchCriteriaDisplayClasses2" }, { "GridId", "classList2" }, { "GridParentDivId", "divClassList2" } })
            </div>
    
        </div>
    </div>
    

    【讨论】:

    • 在哪里可以将 ReportViewer 固定到您的解决方案?
    • 查看代码,您必须根据报表查看器中传递的 ViewDataDictionary 做出决定
    • 你能告诉我如何在下面的代码中固定它吗?
    • 是否可以提供报表查看器的 ID?如果是这样,请在视图数据字典中指定该 ID,并根据代码中的该参数做出决定
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-02-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多