ReportViewer可以使用相对路径呈现超链接吗?

时间:2008-12-30 22:06:11

标签: .net winforms reportviewer hyperlink

我已经创建了一个关于数据源的本地报告,该数据源有一个名为“RelativePath”的字段。当我的WinForms应用程序呈现报表时,它会将文件导出到RelativePath字段中指定的位置。在报表生成器中,我将“导航|超链接操作|跳转到URL”设置为“= Fields!RelativePath.Value”,并将报表的EnableHyperlink属性设置为true。但是,每当我的应用程序呈现报表时,超链接都不会处于活动状态。但是,如果我将Jump to URL硬编码为绝对路径,它就可以正常工作。 ReportViewer是否不呈现具有相对路径的超链接?

3 个答案:

答案 0 :(得分:1)

我一直在努力解决同样的问题,之后我得出结论,报告查看器不支持具有相对路径的超链接。 要解决这个问题,可以通过添加一个自定义代码来检索相对路径,然后使用您希望成为URL一部分的字段值进行连接 - 至少对我有用。

Shaddie

答案 1 :(得分:1)

我遇到了同样的问题。为了解决这个问题,我创建了一个名为“AbsolutePath”的报告参数。

转到.rdlc文件的设计视图。在“报表数据”选项卡上,您将看到“参数”节点。右键单击它:

  1. 添加参数...
  2. 在“常规”选项卡上,在“名称”属性中输入“AbsolutePath”。
  3. 点击“默认值”
  4. 选择“指定值”单选按钮。
  5. 添加新值“AbsolutePath”。
  6. 在TextBox的动作表达式中,添加类似this =“javascript:void(window.open('”参数!AbsolutePath.Value +“/ yourpage.aspx?id =”+ Fields) !Id.Value +“','_ blank'))”

    您可以看到新的“AbsolutPath”参数可用于添加到表达式中。

    现在,您需要将值传递到报告的参数中,就像这样。

        string baseUrl = Request.Url.GetLeftPart(UriPartial.Authority);
        var param = new ReportParameter("AbsolutePath", baseUrl);
        this.ReportViewer.LocalReport.SetParameters(param);
    

答案 2 :(得分:0)

只需在表达式

中使用全局变量Globals!ReportServerUrl
= Globals!ReportServerUrl + "yourpath"