【问题标题】:Can ReportViewer render a hyperlink with a relative path?ReportViewer 可以呈现具有相对路径的超链接吗?
【发布时间】:2010-09-28 22:28:14
【问题描述】:

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

【问题讨论】:

    标签: .net winforms reportviewer hyperlink


    【解决方案1】:

    我一直在努力解决同样的问题,之后我得出结论,reportviewer 不支持具有相对路径的超链接。 解决这个问题的方法是添加一个自定义代码,该代码检索相对路径,然后与您可能希望成为 URL 一部分的字段值连接 - 至少对我有用。

    沙迪

    【讨论】:

    • 我也得出了同样的结论。您是说您必须将相对 URL 转换为绝对 URL,但我使用的是 WinForms ReportViewer,并且需要相对 URL 来使呈现的报告可移植。最后我放弃了,干脆写了一个HTML文件。
    【解决方案2】:

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

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

    1. 添加参数...
    2. 在常规选项卡的名称属性中输入“AbsolutePath”。
    3. 点击“默认值”
    4. 选择“指定值”单选按钮。
    5. 添加新值“AbsolutePath”。

    在您的文本框的操作表达式中,添加类似这样的内容 ="javascript:void(window.open('" + Parameters!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);
    

    【讨论】:

      【解决方案3】:

      只需在表达式中使用全局变量Globals!ReportServerUrl

      = Globals!ReportServerUrl + "yourpath"
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-09-15
        • 2012-09-05
        • 2016-01-23
        • 1970-01-01
        相关资源
        最近更新 更多