gpt4 book ai didi

asp.net-mvc - 如何将 ReportViewer 控件与 Razor 一起使用?

转载 作者:行者123 更新时间:2023-12-02 18:07:18 25 4
gpt4 key购买 nike

我见过很多人说使用 iframe 或新页面来显示 ReportViewer 控件。有没有办法在不使用 iframe 的情况下显示与页面其余部分内联的控件?

最佳答案

如果 .ascx 用户控件继承自 System.Web.Mvc.ViewUserControl,则可以将它们用作 Razor 的部分 View 。

在此实例中,您可以创建一个 ASCX,其中包含 ReportViewer 控件以及 View\Controller 中必需的 ScriptManager 文件夹:

<%@ Control Language="C#" AutoEventWireup="true" CodeBehind="ReportViewerControl.ascx.cs" Inherits="MyApp.Views.Reports.ReportViewerControl" %>
<%@ Register TagPrefix="rsweb" Namespace="Microsoft.Reporting.WebForms" Assembly="Microsoft.ReportViewer.WebForms, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" %>

<form id="form1" runat="server">
<div>
<asp:ScriptManager ID="scriptManager" runat="server" EnablePartialRendering="false" />
<rsweb:ReportViewer Width="100%" Height="100%" ID="reportViewer" runat="server" AsyncRendering="false" ProcessingMode="Remote">
<ServerReport />
</rsweb:ReportViewer>
</div>
</form>

在代码隐藏中,确保在 Page_Init 中包含以下内容;否则,您将无法使用报告 View 中的任何选项:

protected void Page_Init(object sender, EventArgs e)
{
// Required for report events to be handled properly.
Context.Handler = Page;
}

您还想确保您的控件继承自System.Web.Mvc.ViewUserControl:

public partial class ReportViewerControl : ViewUserControl

要使用此控件,您需要在 Razor 页面中执行以下操作:

@Html.Partial("ReportViewerControl", Model)

然后,您可以像平常一样在控件的 Page_Load 中设置 ReportViewer。您将可以访问名为 Model对象,您可以将其转换为您发送的模型类型,然后使用:

ReportViewParameters model = (ReportViewParameters)Model;

关于asp.net-mvc - 如何将 ReportViewer 控件与 Razor 一起使用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15208437/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com