【问题标题】:Unable to open hyperlink location in gridview无法在 gridview 中打开超链接位置
【发布时间】:2013-01-29 12:01:58
【问题描述】:

我有一个带有字段的gridview:

<asp:TemplateField HeaderText="View File">
    <ItemTemplate >     
        <asp:HyperLink ID="LinkView" runat="server" Target="_blank"></asp:HyperLink>
    </ItemTemplate>
    <ItemStyle HorizontalAlign="Center" VerticalAlign="Middle" />
</asp:TemplateField>  

在后面的代码中,(Gridview 的 RowBound)

Dim lnk As HyperLink = DirectCast(e.Row.FindControl("LinkView"), HyperLink) 
lnk.Attributes.Add("onclick", "OpenPdf('" + "file://" + fileName + "')")

例如。文件名:E:\MyFolder\F1\File_01_15_2013_000100.pdf 和javascript函数:

function OpenPdf(path1) {
    window.open(path1);
}

但它不起作用。 在 IE 中,我收到一个错误:Access denied,在 Firefox 中:NS_ERROR_FAILURE: Component returned failure code: 0x80004005 (NS_ERROR_FAILURE) [nsIDOMJSWindow.open]

【问题讨论】:

    标签: c# javascript vb.net


    【解决方案1】:

    你得到的是文件的物理路径,而不是你必须给出文件的虚拟路径,比如

    fileName = "http://yourdomain.com/files/a.pdf"
    

    您需要将文件放在网站目录结构中,以便通过您的域访问路径。假设您的当前页面位于根目录,并且 pdf 文件位于文件夹中。如果不想将图像放在您网站的虚拟目录中,那么您可以创建一个包含您的文件的新虚拟目录。

    在您的网站内创建一个虚拟目录,并提供在您的网站文件夹之外并包含图像的文件夹路径。现在这个文件夹将作为您网站的一部分,您不会收到错误。如何创建虚拟目录,MSDN

    假设您有网站文件夹 d:\Yoursites\Testsite 并且您想访问 d:\file\a.pdf 中的文件,在 TestWebsite 侧创建一个虚拟目录指向 d:\files 并通过虚拟访问其中的文件目录。

    pdf 的 URL 类似于

    http://yoursite.com/yourvirtualdirectoryname//a.pdf

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-03-27
      • 2015-11-07
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多