Solved

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

Posted on 2003-11-19
11
1,363 Views
Last Modified: 2010-05-18
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
Comment
Question by:hibbardc
[X]
Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
  • 5
  • 4
11 Comments
 
LVL 11

Expert Comment

by:thunderchicken
ID: 9779316
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
 

Author Comment

by:hibbardc
ID: 9779530
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
 
LVL 11

Expert Comment

by:thunderchicken
ID: 9779543
Well, you really don't have to create a new page.  You can just flag the same page and only output that javascript.
0
Revamp Your Training Process

Drastically shorten your training time with WalkMe's advanced online training solution that Guides your trainees to action.

 

Author Comment

by:hibbardc
ID: 9779565
Better yet!  How would I do that?
0
 
LVL 11

Expert Comment

by:thunderchicken
ID: 9779589
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
 

Author Comment

by:hibbardc
ID: 9779741
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
 
LVL 11

Expert Comment

by:thunderchicken
ID: 9779752
Yea, whatever function runs whenever the page is loaded first.
0
 

Author Comment

by:hibbardc
ID: 9780867
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
 
LVL 11

Accepted Solution

by:
thunderchicken earned 500 total points
ID: 9780881
You could do a

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

Expert Comment

by:masirof
ID: 12784157
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

Technology Partners: 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!

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Hello, all! I just recently started using Microsoft's IIS 7.5 within Windows 7, as I just downloaded and installed the 90 day trial of Windows 7. (Got to love Microsoft for allowing 90 days) The main reason for downloading and testing Windows 7 is t…
Have you ever needed to get an ASP script to wait for a while? I have, just to let something else happen. Or in my case, to allow other stuff to happen while I was murdering my MySQL database with an update. The Original Issue This was written…
If you're a developer or IT admin, you’re probably tasked with managing multiple websites, servers, applications, and levels of security on a daily basis. While this can be extremely time consuming, it can also be frustrating when systems aren't wor…
Michael from AdRem Software explains how to view the most utilized and worst performing nodes in your network, by accessing the Top Charts view in NetCrunch network monitor (https://www.adremsoft.com/). Top Charts is a view in which you can set seve…

691 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question