单击Gridview行下载asp.net中的特定文件

时间:2017-01-13 04:40:04

标签: c# asp.net gridview

在我的应用程序中,我有一个包含6列的gridview控件。当我点击第6列的行时,我需要下载该文件。我从数据库绑定gridview。如何将gridview列视为链接?

我的标记:

<asp:GridView ID="GridView1" Width="950px" CssClass="Grid" runat="server" AutoGenerateColumns="false" >
    <Columns>
        <asp:BoundField DataField="ID" HeaderText="" ItemStyle-ForeColor="White" />
        <asp:BoundField DataField="Name" HeaderText="Name" />
        <asp:BoundField DataField="SName" HeaderText="SName" />                        
        <asp:BoundField DataField="Date" HeaderText="Date" />
        <asp:BoundField DataField="Size" HeaderText="Size(MB)" />     
        <asp:BoundField DataField="Time" HeaderText="Time" />                             
        <asp:HyperLinkField DataTextField="FileName" DataNavigateUrlFields="Id" HeaderText="File Name" ItemStyle-Width = "150" />
    </Columns>        
</asp:GridView>

我的形象:

enter image description here

1 个答案:

答案 0 :(得分:0)

通过此C#代码下载指定路径中具有指定名称的文件。我希望这会有所帮助。

    String pathOfFile = Server.MapPath("~/ActualPathOfYourFile/" +  fileNameComingFromDatabse);
    byte[] bts = System.IO.File.ReadAllBytes(pathOfFile);
    Response.Clear();
    Response.ClearHeaders();
    Response.AddHeader("Content-Type", "Application/octet-stream");
    Response.AddHeader("Content-Length", bts.Length.ToString());
    Response.AddHeader("Content-Disposition", "attachment; filename=" + fileNameComingFromDatabse);
    Response.BinaryWrite(bts);
    Response.Flush();
    Response.End();