我有这张 table
我想单击链接,文件(无论是什么文件)将在新的弹出窗口中打开。
这是我的代码:
<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。任何人都可以帮助我解决这个问题或任何想法如何做到这一点。谢谢
最佳答案
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>
服务器所在位置
关于c# - 如何通过单击超链接打开文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12245444/