Link to home
Start Free TrialLog in
Avatar of Parthap
Parthap

asked on

How do i close pop up window after opening a document from a link in popup?

i am implementing a functionality of check out. when i am click on check oot button a popup will open. In pop up we have a link button "Download", when the user click on this link we have to open a document and also we have to close pop up window. we are able to  open the document but not able to close the pop up window.
Avatar of vjc2003
vjc2003

how are you opening the document from the popup?
is window.close() not working?
Avatar of Parthap

ASKER

no window.close is not working.

on click event i set some value, and call Server.Execute() as shown below  

        Session["DocRef"] = Request.QueryString["DocRefNo"].ToString();
        Session["DocName"] = Request.QueryString["DocName"].ToString(); ;
        Session["DocExt"] = Request.QueryString["DocExt"].ToString(); ;
        Session["DocSec"] = Request.QueryString["DocSec"].ToString(); ;
        Session["DocVerNo"] = Request.QueryString["DocVer"].ToString(); ;
        Server.Execute("../Common/ViewDoc.aspx");
        Response.Write("<script>window.close();</script>");


In ../Common/ViewDoc.aspx  page i have write some code as shown below in Page_Load.

        Response.ClearContent();
        Response.ClearHeaders();
        Response.Buffer = true;
        Response.BufferOutput = true;

        Response.AddHeader("content-disposition", "attachment;filename=" + Session["DocName"].ToString());

       Byte[] bytBinaryReadContent = Convert.FromBase64String(strcontent);
            Response.BinaryWrite(bytBinaryReadContent);  

       Response.Flush();
       Response.Close();
here is a little trick you can try: after you set all your session values, instead of do a Server.Execute open another download window before close the current popup.
//Set Session
//Session["DocRef"] = Request.QueryString["DocRefNo"].ToString();
//Session["DocName"] = Request.QueryString["DocName"].ToString(); ;
//Session["DocExt"] = Request.QueryString["DocExt"].ToString(); ;
//Session["DocSec"] = Request.QueryString["DocSec"].ToString(); ;
//Session["DocVerNo"] = Request.QueryString["DocVer"].ToString(); 
Response.Write("<script type=\"text/javascript\">window.open('../Common/ViewDoc.aspx'); window.close();</script>");
//more preferablely
ClientScript.RegisterClientScriptBlock(this.GetType(), "script01", "window.open('../Common/ViewDoc.aspx'); window.close();", true);
 
 
//in the ViewDoc.cs
byte[] buff = YOUCONTENT;
Response.Clear();
Response.AppendHeader("content-disposition", "attachment;filename=file.data");
Response.AppendHeader("Content-Length", buff.Length.ToString());
Response.BinaryWrite(buff);
Response.End();

Open in new window

Avatar of Parthap

ASKER

Hi,

//ClientScript.RegisterClientScriptBlock(this.GetType(), "script01", "window.open('../Common/ViewDoc.aspx'); window.close();", true);

I tried this also, but it can not open document. After click on link page is blank out and stuck there only.
ASKER CERTIFIED SOLUTION
Avatar of zeroxp
zeroxp

Link to home
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
Start Free Trial