c# - 无法在 gridview 中打开超链接位置

标签 c# javascript vb.net

我有一个包含字段的 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 中,我收到错误:访问被拒绝,在 Firefox 中:NS_ERROR_FAILURE:组件返回失败代码:0x80004005 (NS_ERROR_FAILURE) [nsIDOMJSWindow.open]

最佳答案

您将获得文件的物理路径,而不是必须提供文件的虚拟路径,例如

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

关于c# - 无法在 gridview 中打开超链接位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14582411/

相关文章:

c# - 如何从一个方法返回多个值?

c# - 用户代理正则表达式

javascript - 在 React 中访问父组件的 onClick 方法

javascript - 动态创建和添加内容

javascript - 关于cookie

vb.net - 如何在vb.net中将字符a变成b

c# - 如何在 Web 服务中公开接口(interface)

c# - 合并 ImageBrush 和 SolidColorBrush ? (作为 Canvas 的背景)

vb.net - 如何在 vb.net 中加速 MD5 校验和的生成?

javascript - JS中单引号替换为双引号