【问题标题】:GridView Hyperlink opening fileGridView 超链接打开文件
【发布时间】:2016-04-23 15:27:12
【问题描述】:

谁能帮助我了解如何使用 Hyperlink 或 LinkBut​​ton 控件从 gridview 打开文件? 在我的应用程序中,我想从我的应用程序中指定的路径打开文件(例如“c://example/”)并将gridview中的所有文件名显示为超链接,直到它正常工作,但是当我单击作为超链接的文件名时,没有任何反应,我将 navigateurl 设置为:

<asp:HyperLink ID="HyperLink1" runat="server" **Text='<%# Eval("Name") %>' 
  NavigateUrl='<%# bind("FullName") %>'**></asp:HyperLink>

请帮帮我

【问题讨论】:

    标签: asp.net gridview aspxgridview


    【解决方案1】:

    &lt;asp:TemplateField&gt; 中,我添加了:

    <a id="A1" runat="server" target="_blank" href='<%# DataBinder.Eval(Container, "DataItem.ProofOfPayment", "~/uploads/payments/{0}") %>'>View Payment</a>
    

    【讨论】:

      【解决方案2】:

      什么是'FullName' - 如果它是 C:/Somefile 之类的东西,那么这将不起作用,因为它指向服务器硬盘驱动器上的一个位置,而不是 URL。您要么需要一个指向文件位置的虚拟目录,要么需要某种页面来读取和提供这些项目。

      【讨论】:

        【解决方案3】:

        您应该指定“文件”后缀。网址应如下所示:

        // “file://\\Server\Folder\FileName.ext“
        
        
        <asp:HyperLink ID="HyperLink1" runat="server" **Text='<%# Eval("Name") %>' 
         NavigateUrl='file://<%# bind("FullName") %>'**></asp:HyperLink>
        

        如果路径包含here 报告的任何带空格,则无论如何您都可能遇到问题

        最好的方法是使用 HTML 链接

        <a runat="server" target="_blank"  href='<%# DataBinder.Eval(Container, "DataItem.FilePath") %>'>
        

        【讨论】:

        • 谢谢我想通了,使用链接按钮而不是超链接
        【解决方案4】:

        我喜欢这样做以使链接文本动态化。

        <ItemTemplate>                                   
                      <asp:HyperLink ID="HyperLink1" runat="server" Target="_blank" Text='<%# Bind("DataField") %>' NavigateUrl='<%# DataBinder.Eval(Container, "DataItem.DataField", "~/Folder/{0}") %>'></asp:HyperLink>
        </ItemTemplate>
        

        【讨论】:

          【解决方案5】:

          可以在Gridview的Row命令事件上完成。

          protected void grdAttachment_RowCommand(object sender, GridViewCommandEventArgs e)
          {
              if (e.CommandName == "ViewFile")
              {
                  string fileName = Server.MapPath("~/Attachment/" + e.CommandArgument.ToString());           
                  Process process = new Process();
                  process.StartInfo.UseShellExecute = true;
                  process.StartInfo.FileName = fileName;
                  process.Start();
              }
          }

          在文件名中给出你的文件路径。当您单击链接按钮时,此文件将打开。

          您可以点击此链接查看完整示例:

          How to Open or view Images & Docx Files in Gridview in Asp.Net (C#)?

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2012-05-17
            • 1970-01-01
            • 2016-03-27
            • 2015-07-06
            • 1970-01-01
            相关资源
            最近更新 更多