在ReportViewer中使用超链接(HyperLink)

本文分享了在ReportViewer中正确设置超链接的方法,解决相对路径无法使用的问题。通过将当前请求的URL目录信息作为参数传递给报表,再结合报表参数在HyperLink中构建完整路径,确保超链接在报表加载时指向正确的绝对URL。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

今天,需要在ReportViewer报表上链接到别一个页面上。
于是给TextBox加上一个Action,并在Action内指定HyperLink,
结果发现,如果指定给HyperLink的不是绝对URL,它就不起作用。
但开发的时候不可能就指出绝对的URL。

而要取得客户端访问的绝对的URL也不是一样容易的事:-),

经过测试,发现只有Request.Url提供此信息。
于是可以采用下方法来指定绝对URL。
1. 在Report上增加报表参数Current_Virtual_Path。

2. 写ReportViewer的Load事件:代码如下:

 1         string  req_url  =   this .Request.Url.ToString();
 2 
 3           int  pos  =  req_url.LastIndexOf( ' / ' );
 4 
 5           if  (pos  >   0 )
 6          {
 7               string  current_virtual_path  =  req_url.Substring( 0 , pos  +   1 );
 8              ReportViewer1.LocalReport.SetParameters( new  ReportParameter[] {
 9               new  ReportParameter( " current_virtual_path " , current_virtual_path) });
10          }

也就是在报表Load的时候把该URL的目录信息作为报表参数传递给Reportviewer。

3. 指定HyperLink的标签的内容为:
= Parameters ! current_virtual_path.Value  +   " 文件.aspx "

4. 修改ReportViewer.LocalReport.EnableHyperLinks 为true。

至此搞定。

转载于:https://www.cnblogs.com/belaliu/archive/2006/10/11/526521.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值