【发布时间】:2014-07-31 16:24:32
【问题描述】:
我有以下代码可以在当前页面的新窗口中打开 PDF 文件:
<asp:LinkButton ID="lnkView2" Text="View in Browser" OnClientClick="window.document.forms[0].target='_blank';" runat="server" OnClick="ViewFile" />
protected void ViewFile(object sender, EventArgs e)
{
strFileName = "APP_" + k.Trim(' ') + "_" + c.Trim(' ') + "_NoID.pdf";
Session["fileName"] = strFileName;
Response.Redirect("OpenFilePDF.ashx?fileVar=" + Session["fileName"]);
}
OpenFilePDF.ashx 正在使用网站服务器中创建的文件夹:
<%@ WebHandler Language="C#" Class="OpenFilePDF" %>
using System;
using System.Web;
using System.IO;
public class OpenFilePDF : IHttpHandler {
public void ProcessRequest (HttpContext context) {
System.Web.HttpRequest request2 = System.Web.HttpContext.Current.Request;
string strSessVar2 = request2.QueryString["fileVar"];
try
{
System.Web.HttpResponse response = System.Web.HttpContext.Current.Response;
response.ClearContent();
response.Clear();
response.ContentType = "application/pdf";
byte[] fileByteArray = File.ReadAllBytes(Path.Combine(@"C:\PDFGenerate", strSessVar2));
response.AddHeader("Content-disposition", String.Format("inline; filename={0}", strSessVar2));
response.BinaryWrite(fileByteArray);
response.End();
}
catch (Exception ce)
{
}
}
public bool IsReusable {
get {
return false;
}
}
}
当我点击LinkButton 时,它会从当前页面打开一个新窗口,一切正常。
但是假设我点击了当前页面上的以下按钮(或任何链接):
<asp:Button ID="btnGeneratePDF" ClientIDMode="Static" runat="server" Text="Generate PDF" CommandArgument='#SOMETHING GOES HERE' />
每次我想阻止它都会打开新窗口。它不打开新窗口的唯一方法是,如果我不打开新页面并在同一页面上重定向并且用户返回到当前页面,它不会每次都打开新窗口。
如何修改代码,以便只有LinkButton 控件会打开一个新窗口,而任何其他控件都将在同一页面上打开而不是在新窗口中?
【问题讨论】: