5

私はこのテーブルを持っています

ここに画像の説明を入力

リンクをクリックすると、ファイル (ファイルに関係なく) が新しいポップアップ ウィンドウで開かれます。

これが私のコードです:

<asp:Repeater ID="dokumente" runat="server">
    <ItemTemplate>
        <tr>
            <td><asp:HyperLink ID="HyperLink4" runat="server" Text='<%# Eval("DokuTyp") %>' NavigateUrl='file://<%# Eval("File") %>'></asp:HyperLink></td>
            <td><%# Eval("Description")%></td>
            <td><%# Eval("Date") %></td>
            <td><%# Eval("File") %></td>
        </tr>
    </ItemTemplate>
</asp:Repeater>

ただし、NavigateUrl では機能しません。誰かがこれについて私を助けることができますか、これを行う方法について考えてください。ありがとう

4

3 に答える 3

5

file:/// は、自分のマシン上のリソース用です。

サーバー上のファイルを開くには、サーバー上の URL にリンクする必要があります。使用する:

HttpContext.Current.Request.ResolveUrl(pathOnServer);

コードを次のように変更します。

<asp:Repeater ID="dokumente" runat="server">
    <ItemTemplate>
        <tr>
            <td><asp:HyperLink ID="HyperLink4" runat="server" Text='<%# Eval("DokuTyp") %>' NavigateUrl='<%# HttpContext.Current.Request.ResolveUrl(Eval("File")) %>'></asp:HyperLink></td>
            <td><%# Eval("Description")%></td>
            <td><%# Eval("Date") %></td>
            <td><%# Eval("File") %></td>
        </tr>
    </ItemTemplate>
</asp:Repeater>

どこのサーバー

于 2012-09-03T09:55:28.527 に答える
1

「ファイル」プロトコルは、ユーザーのコンピューターでファイルを開きます。サーバー側でファイルを読み取り、Resposne.Write を呼び出す必要があると思います。

于 2012-09-03T09:49:23.737 に答える
0

Server.MapPathサーバー上のファイルを検索する場合は、メソッドを使用できます。サーバー上のファイルを検索する場合、「file://」は正しい URL ではありません

NavigateUrl=<%#Server.MapPath(DataBinder.Eval("File"))%>
于 2012-09-03T09:59:33.720 に答える