• Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 1417
  • Last Modified:

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!
0
hibbardc
Asked:
hibbardc
  • 5
  • 4
1 Solution
 
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
Independent Software Vendors: We Want Your Opinion

We value your feedback.

Take our survey and automatically be enter to win anyone of the following:
Yeti Cooler, Amazon eGift Card, and Movie eGift Card!

 
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
 
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

Featured Post

New feature and membership benefit!

New feature! Upgrade and increase expert visibility of your issues with Priority Questions.

  • 5
  • 4
Tackle projects and never again get stuck behind a technical roadblock.
Join Now