1

フィールドを持つグリッドビューがあります:

<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 + "')")

元。fileName:E:\MyFolder\F1\File_01_15_2013_000100.pdf および JavaScript 関数:

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

しかし、それは機能していません。IE ではエラーが発生します: Access deniedFirefox では:NS_ERROR_FAILURE: Component returned failure code: 0x80004005 (NS_ERROR_FAILURE) [nsIDOMJSWindow.open]

4

1 に答える 1

1

次のように、ファイルの仮想パスを指定する必要がある代わりに、ファイルの物理パスが指定されます。

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

ドメインからアクセスできるパスの Web サイト ディレクトリ構造にファイルを配置する必要があります。現在のページがルートにあり、pdf ファイルが files フォルダーにあるとします。Web サイトの仮想ディレクトリに画像を配置したくない場合は、ファイルを含む新しい仮想ディレクトリを作成できます。

Web サイト内に仮想ディレクトリを作成し、Web サイト フォルダーの外にあり、画像を含むフォルダーのパスを指定します。これで、このフォルダーは Web サイトの一部として機能し、エラーは発生しなくなります。仮想ディレクトリの作成方法、MSDN

Web サイト フォルダー d:\Yoursites\Testsite があり、d:\file\a.pdf 内のファイルにアクセスしたい場合、側の TestWebsite に d:\files を指す仮想ディレクトリを作成し、仮想ディレクトリを介してその中のファイルにアクセスするとします。

PDFのURLは次のようになります

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

于 2013-01-29T12:06:19.163 に答える