GridView超链接打开文件

时间:2012-02-22 10:55:59

标签: asp.net gridview aspxgridview

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

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

请帮助我

5 个答案:

答案 0 :(得分:2)

<asp:TemplateField>中,我添加了:

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

答案 1 :(得分:0)

你应该指定“file”后缀。网址应如下所示:

// “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") %>'>

答案 2 :(得分:0)

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

答案 3 :(得分:0)

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

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

答案 4 :(得分:0)

可以在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();
    }
}

在fileName中提供文件路径。当您单击链接按钮时,此文件将打开。

您可以点击此链接获取完整示例:

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