asp:Gridview中的超链接在新的浏览器窗口中打开PDF

时间:2017-06-20 11:48:48

标签: c# asp.net pdf gridview hyperlink

我目前有一个gridview,可以动态创建asp:Hyperlinks到PDF文件。现在,url只是将文件下载到本地计算机。什么是让他们在新窗口中打开的最简单方法,以便用户可以选择打印或下载。 Chrome会自动下载它。 IE要求打开或保存它。我只是想在浏览器窗口中打开它。

<asp:TemplateField HeaderText="Name">
    <ItemTemplate>
        <asp:HyperLink ID="lblProductName" runat="server" Text='<%# Eval("name") %>' NavigateUrl="#" Target="_blank"  ></asp:HyperLink>
    </ItemTemplate>
</asp:TemplateField>

实际的NavigateUrl在

后面的代码中创建
HyperLink lblProductName = (HyperLink)e.Row.FindControl("lblProductName");
lblProductName.NavigateUrl = urlLink;

1 个答案:

答案 0 :(得分:1)

添加新页面说DownloadFile.aspx并添加以下代码

protected void Page_Load(object sender, EventArgs e)
{
if (!this.IsPostBack)
{
    string fileName = Request.QueryString["pdffile"];
    string path = Server.MapPath("~/PDFs/") + fileName;
    Response.ContentType = "application/pdf";
    Response.AppendHeader("Content-Disposition", "attachment; filename=" + fileName);
    Response.WriteFile(path);
    Response.Flush();
    Response.End();
}
}

现在在GridView中删除LinkBut​​ton并添加HyperLink,如下所示

<asp:HyperLink ID="HyperLink1" runat="server" Target = "_Blank" NavigateUrl='<%# Eval("FileName","DownloadFile.aspx?PDFFile={0}") %>'></asp:HyperLink>