Open a new window within the aspx.cs page with ASP.NET (C#)

I hope you can help --

I've been having a difficult time with this one.  I need to be able to open a new window (to show a 'printer-friendly' version of the page) and I keep running into problems.

And the code on the aspx.cs page:

private void btnPrint_Click(object sender, System.Web.UI.ImageClickEventArgs e)
{
string openPrintPage = "";                        
openPrintPage = "<script language='javascript'>";
   
openPrintPage += "window.open('Assess-ReportView.aspx?OrgReviewID=" + AssessmentID + "&Section=PrintView');";

openPrintPage += "</script>";

btnPrint.Attributes.Add("onClick", openPrintPage);
}

When ran, it doesn't open to a new page.  It appears to do an autopostback and "erase" the data on-screen without ever opening a new window.

Thanks in advance!
hibbardcAsked:
Who is Participating?
I wear a lot of hats...

"The solutions and answers provided on Experts Exchange have been extremely helpful to me over the last few years. I wear a lot of hats - Developer, Database Administrator, Help Desk, etc., so I know a lot of things but not a lot about one thing. Experts Exchange gives me answers from people who do know a lot about one thing, in a easy to use platform." -Todd S.

thunderchickenCommented:
This might be a quick fix, but you could create that on a new page, then redirect it to that page.

When I did this for a project, I had to post the javascript before the aspx was rendered.
0
hibbardcAuthor Commented:
Hi thunderchicken,

Hmmm, good suggestions, but with the app in testing, I know we're trying not to have to create new pages or redirect to newly created pages.



0
thunderchickenCommented:
Well, you really don't have to create a new page.  You can just flag the same page and only output that javascript.
0
Get your problem seen by more experts

Be seen. Boost your question’s priority for more expert views and faster solutions

hibbardcAuthor Commented:
Better yet!  How would I do that?
0
thunderchickenCommented:
Something along the lines of this  (say your aspx page is called default.aspx)

With your pageInit...


if Request.QueryString["print"] == "true"
{
   loadPage()
}



private void loadPage()
{
string openPrintPage = "";                        
openPrintPage = "<script language='javascript'>";
   
openPrintPage += "window.open('Assess-ReportView.aspx?OrgReviewID=" + Request.QueryString["id"] + "&Section=PrintView');";

openPrintPage += "</script>";

btnPrint.Attributes.Add("onClick", openPrintPage);
}

private void btnPrint_Click(object sender, System.Web.UI.ImageClickEventArgs e)
{
   Response.Redirect("default.aspx?print=true&id=" + AssessmentID)'
   Response.End();
}



It's been a while since I've done C# stuff, so sorry about the syntax
0
hibbardcAuthor Commented:
Quick question:

For placing code within the pageInt, is this what you meant?

******************************************

#region Web Form Designer generated code
override protected void OnInit(EventArgs e)
{
    //
    // CODEGEN: This call is required by the ASP.NET Web Form Designer.
    //
      InitializeComponent();
      base.OnInit(e);

      //to print page -- sample code
      if (Request.QueryString["print"] == "true")
      {
      loadPage();
      }
}
*******************************

Juuuusstt making sure I have everything in the right place.
0
thunderchickenCommented:
Yea, whatever function runs whenever the page is loaded first.
0
hibbardcAuthor Commented:
Hello again.

When I incorporated the code, some headers began to show up (their disabled depending on user level), so I may have to mess with this one some more.....
0
thunderchickenCommented:
You could do a

Response.Write("Please wait...");
Response.Redirect("default.aspx?print=true&id=" + AssessmentID)'
   Response.End();
0

Experts Exchange Solution brought to you by

Your issues matter to us.

Facing a tech roadblock? Get the help and guidance you need from experienced professionals who care. Ask your question anytime, anywhere, with no hassle.

Start your 7-day free trial
masirofCommented:
No comment has been added to this question in more than 21 days, so it is now classified as abandoned..
I will leave the following recommendation for this question in the Cleanup topic area:
Accept: thunderchicken

Any objections should be posted here in the next 4 days. After that time, the question will be closed.

masirof
EE Cleanup Volunteer
0
It's more than this solution.Get answers and train to solve all your tech problems - anytime, anywhere.Try it for free Edge Out The Competitionfor your dream job with proven skills and certifications.Get started today Stand Outas the employee with proven skills.Start learning today for free Move Your Career Forwardwith certification training in the latest technologies.Start your trial today
ASP

From novice to tech pro — start learning today.

Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.