我的问题是,当单击 SSRS 报告中的超链接时,有没有办法在不刷新整个网页的情况下更改 url?
我在 SSRS Report RDLC 中尝试了 2 种不同的超链接实现,如下所示: SSRS:如何在 sql 服务报告中显示超链接
1st Way Textbox Properties > Action pane > Go to URL radio button > Selected URL: http://localhost:(port)/#/Path/ViewDetails
第二种方式 创建占位符>右键单击>占位符属性>常规窗格>在标记类型:HTML-在样式处解释HTML标签>值:=“<a href="http://localhost:(port)/#/Path/ViewDetails ">查看详情</a>"
我有一个使用 AngularJS 并实现了 SSRS Report Viewer 的本地处理模式的 MVC 项目。报表查看器在 ASPX 页面 (MVC.ViewPage) 中实现
报表查看器.aspx
<%@ Page Language="C#" Inherits="System.Web.Mvc.ViewPage<SampleProject.Models.ReportInfo>" %>
<%@ Register Assembly="Microsoft.ReportViewer.WebForms, Version=11.0.0.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91" Namespace="Microsoft.Reporting.WebForms" TagPrefix="rsweb" %>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head id="Head1" runat="server">
<title></title>
</head>
<body>
<form id="form1" runat="server">
<asp:ScriptManager ID="scriptManager" runat="server" ScriptMode="Release"></asp:ScriptManager>
<rsweb:ReportViewer ID="ReportViewer" runat="server"
SizeToReportContent="true" AsyncRendering="false" Visible="true"
ProcessingMode="Local" EnableViewState="true"
InternalBorderStyle="None" BorderStyle="None" InternalBorderWidth="0"
KeepSessionAlive="false" >
</rsweb:ReportViewer>
</form>
<script runat="server">
override protected void OnInit(EventArgs e){
// some report viewer initialization here
// some datasource data population code here
}
</script>
我将此 ASPX 页面加载到 MVC 部分视图的 IFrame 中。
查看详细信息.cshtml
<div>
<iframe src="{{report.viewDetailPath}}"></iframe>
</div>
viewDetail.js(AngularJS 控制器)
angular.module('project').controller("ViewDetailCtrl", function($scope){
$scope.report = {
id: // some guid,
viewDetailPath: '/Reports/ReportViewer';
}
}
我有一个带有超链接“查看详细信息”的 RDLC 报告。
我希望我的应用程序表现得像一个单页应用程序。当我单击报告中的“查看详细信息”链接时,它不会刷新整个页面,只会更改 URL 并从 AngularJS 控制器执行一个 javascript 方法。
我还实现了 AngularJS 的 $routeProvider 以使其看起来像一个单页应用程序。
应用程序.js
project.config(function($routeProvider){
$routeProvider.
when('/', {template: 'NYI'}).
when('/Path/ViewDetails', {controller: 'ViewDetailCtrl', templateUrl: '/Reports/ViewDetail'}).
otherwise({redirectTo: '/'});
});
ReportsController.cs(MVC 控制器)
public PartialViewResult ViewDetail(){
return PartialView("~/Views/Reports/ViewDetail.cshtml");
}
public ActionResult ReportViewer(){
return View("~/Views/Reports/ReportViewer.aspx", new ReportInfo());
}
当 SSRS 报告超链接更改 URL 时,使应用程序像单页应用程序一样的 $routeProvider 不起作用。