在ReportViewer中使用超链接(HyperLink)

今天,需要在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。

至此搞定。

你可能感兴趣的:(perl)