c#
  • asp.net
  • visual-studio-2010
  • web-applications
  • hyperlink
  • 2012-09-03 92 views 5 likes 
    5

    打开文件我有这个表如何通过单击超链接

    enter image description here

    我要点击的链接和文件(任何文件)将在新弹出的窗口中打开上。

    这里是我的代码:

    <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工作。任何人都可以帮助我解决这个问题或任何想法如何做到这一点。谢谢

    +2

    您指的不存在的列“DokuTyp”文件,根据你的表结构的屏幕截图。接下来:“这不起作用”通常是最糟糕的错误描述,我可以想象。第三:从HTTP页面指向服务器本地文件,大多数情况都是错误的,除非你在服务器本身上使用浏览器。 –

    +0

    发生了什么问题或错误? – SMK

    +0

    Uwe:嗨,列确实存在,但没有错误虽然:) SMK:嗨,没有问题或错误发生,当我点击链接时什么都没有发生。我认为NavigateUrl绝对是错误的。 – Ragnarsson

    回答

    5

    该文件:///用于您自己机器上的资源。

    要打开服务器上的文件,您必须链接到服务器上的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> 
    

    如果服务器

    +0

    我收到错误“ResolveUrl不是System.Web.HttpRequest的成员” – chamara

    +0

    你在哪里使用它?这是可用于控件的扩展方法。 – nunespascal

    1

    “文件”协议在用户计算机上打开一个文件。 我想你必须读取服务器端的文件并调用Resposne.Write。

    0

    如果你想找到服务器上的文件,你可以使用Server.MapPath方法; “文件://”是不正确的网址,如果你想找到服务器

    NavigateUrl=<%#Server.MapPath(DataBinder.Eval("File"))%> 
    
    相关问题