C# asp:Gridview中的超链接在新浏览器窗口中打开PDF
我目前有一个gridview,它可以动态创建指向PDF文件的asp:Hyperlinks。现在,url只是将文件下载到本地计算机。让它们在新窗口中打开以便用户可以选择打印或下载的最简单方法是什么。Chrome会自动下载它。IE请求打开或保存它。我只想在浏览器窗口中打开它C# asp:Gridview中的超链接在新浏览器窗口中打开PDF,c#,asp.net,pdf,gridview,hyperlink,C#,Asp.net,Pdf,Gridview,Hyperlink,我目前有一个gridview,它可以动态创建指向PDF文件的asp:Hyperlinks。现在,url只是将文件下载到本地计算机。让它们在新窗口中打开以便用户可以选择打印或下载的最简单方法是什么。Chrome会自动下载它。IE请求打开或保存它。我只想在浏览器窗口中打开它 <asp:TemplateField HeaderText="Name"> <ItemTemplate> <asp:HyperLink ID="lblProductName"
<asp:TemplateField HeaderText="Name">
<ItemTemplate>
<asp:HyperLink ID="lblProductName" runat="server" Text='<%# Eval("name") %>' NavigateUrl="#" Target="_blank" ></asp:HyperLink>
</ItemTemplate>
</asp:TemplateField>
添加一个新页面,比如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中删除链接按钮并添加超链接,如下所示
<asp:HyperLink ID="HyperLink1" runat="server" Target = "_Blank" NavigateUrl='<%# Eval("FileName","DownloadFile.aspx?PDFFile={0}") %>'></asp:HyperLink>
Chrome下载是浏览器功能。&IE要求打开并保存IE的功能也是如此。我想你可能会得到答案,需要调整一下。下载是他/她自己浏览器的用户设置。您无法控制单击链接后会发生什么。@VDWWD我想他想要的是,当您单击它时,预览将以新的选项卡可读格式打开文件。比如当你想在yahoo mail中查看文件时
<asp:HyperLink ID="HyperLink1" runat="server" Target = "_Blank" NavigateUrl='<%# Eval("FileName","DownloadFile.aspx?PDFFile={0}") %>'></asp:HyperLink>