Solved

How to make gif image invisible ??

Posted on 2008-10-05
6
992 Views
Last Modified: 2008-10-24
Hi,

     i have a grid which contains link for showing report in form of pdf.

     This we are doing through Sql server 2005 reporting services.

     Now when the link is clicked, a gif image is displayed showing the progress.

    The report is shown on a new page.

    What i want is when the new page is displayed the gif image should get hidden.

    I want when the report is finished loading then image should get inivisible.

Now how can i access gif from parent page from child page ???

On page load of child page i tried injecting javascript alert();

But the page is appearing in pdf format since i am using Sql server 2005 reporting services and

directly injecting data by saying Response.BinaryWrite();

So how can i fire javascript in such page ??????
0
Comment
Question by:Paramhans
  • 3
  • 3
6 Comments
 
LVL 22

Assisted Solution

by:Ivo Stoykov
Ivo Stoykov earned 250 total points
ID: 22647320
Hi Paramhans
you need a simple JavaScript attached to the onload event of the element showing report.
Because you didn't attache any source I've made a simple HTML sample snippet hoping you've catch the idea.
HTH
I

 <SCRIPT LANGUAGE="JavaScript">

 <!--

   function hideGif()

   {

     document.getElementById("test").style.display = "none";

   }

 //-->

 </SCRIPT>
 

<!-- your gif imege -->

<IMG SRC="1.jpg" WIDTH="320" HEIGHT="450" BORDER="0" ALT="" id="test">

<!-- your gif imege -->

<div id="report">report is loading in this div</div>

Open in new window

0
 

Author Comment

by:Paramhans
ID: 22656697
Hi Thanx 4 the reply.
I tried injecting javascript at runtime but it did not work.

Also i would like to explain the problem once again.

I have a link on Page1 on the click of which the Gif is displayed on same page and a new page called as Page2 which is responsible for showing report is displayed.

When page2 is completely loaded i want to hide Gif image on Page1 ?????
Since Page2 shows report using Sql server 2005 reporting services.

Injecting javascript is not working on Page2.

0
 

Author Comment

by:Paramhans
ID: 22656741

I have code in ItemCommand of Grid linkbutton on page1 as following:

           Context.Items.Add("SurveyID",Convert.ToString(e.CommandArgument));		

           Server.Transfer("~/User/PDFReport.aspx");
 

On Page2 (PDFReport.aspx) page_load event i have code to generate pdf report using reporting services as following:

                               Response.Clear();

				Response.Buffer= true;

				string fileName= System.Configuration.ConfigurationSettings.AppSettings["ReportName"];

				Response.ContentType = "application/pdf";

				Response.AddHeader("Content-Disposition", "attachment; filename=" + fileName + "");

		

				SurveyReport1.ReportingService objRService =  new SurveyReport1.ReportingService();

				objRService.Url = System.Configuration.ConfigurationSettings.AppSettings["ReportingServiceURL"];

				objRService.PreAuthenticate = false;

				objRService.Credentials = System.Net.CredentialCache.DefaultCredentials;

				objRService.Timeout = 1000 * Convert.ToInt32(ConfigurationSettings.AppSettings["WebServiceTimeout"]); 

				string PDFData = objRService.GeneratePdfReport(Convert.ToString(Request.QueryString["SurveyID"]));

				

				byte [] bytData = Convert.FromBase64String(PDFData);
 

				Response.BinaryWrite(bytData);
 

This is the code for GeneratePdfReport() written in a class file:
 

		public string GeneratePdfReport(string surveyId)

		{

			try

			{

				SQLReportingService.ReportingService rs = new SQLReportingService.ReportingService();

				rs.Url = ConfigurationSettings.AppSettings["ReportingServiceURL"];

			

				rs.Credentials = CredentialCache.DefaultCredentials;

				byte[] result = null;

				string reportPath = ConfigurationSettings.AppSettings["ReportPath"];

				string format = "PDF";

				string historyID = null;

				string devInfo = @"<DeviceInfo><Toolbar>False</Toolbar></DeviceInfo>";
 

				// Prepare report parameter.

				ParameterValue[] parameters = new ParameterValue[1];

				parameters[0] = new ParameterValue();

				parameters[0].Name = "surveyId";

				parameters[0].Value = surveyId;

				

			

				string showHideToggle = null;

				string encoding;

				string mimeType;

				Warning[] warnings = null;

				ParameterValue[] reportHistoryParameters = null;

				string[] streamIDs = null;

				SessionHeader sh = new SessionHeader();

				rs.SessionHeaderValue = sh;

				try

				{

					result = rs.Render(reportPath, format, historyID, devInfo, parameters, null,

						showHideToggle, out encoding, out mimeType, out reportHistoryParameters, out warnings,

						out streamIDs);

					sh.SessionId = rs.SessionHeaderValue.SessionId;

					return Convert.ToBase64String(result);

				}

				catch (Exception)

				{

					return null;

				}

			}

			catch (Exception)

			{

				return null;

			}
 

		}

Open in new window

0
Is Your Active Directory as Secure as You Think?

More than 75% of all records are compromised because of the loss or theft of a privileged credential. Experts have been exploring Active Directory infrastructure to identify key threats and establish best practices for keeping data safe. Attend this month’s webinar to learn more.

 
LVL 22

Assisted Solution

by:Ivo Stoykov
Ivo Stoykov earned 250 total points
ID: 22657589
Hi Paramhans
How correspond Page1 & Page 2? You must have onClick event in Page1, right?
I
0
 

Author Comment

by:Paramhans
ID: 22666230
On page 1 we have a link
When i click on that link lnkShow_click gets fired.
0
 
LVL 22

Accepted Solution

by:
Ivo Stoykov earned 250 total points
ID: 22667028
Well here is a possible solution

// default page (1 - report is called from)

<body>

    <form id="form1" runat="server">

    <div>

      <img id="myGif" src="#" /> <!-- your gif - must have an ID which is used in page2 -->

    </div>

    </form>

</body>
 

// page2 - report

    protected void Page_Load( object sender, EventArgs e )

    {

      String scriptString = "<script language=\"JavaScript\">\n";

      scriptString += "test();\n";

      scriptString += "function test() {  window.opener.document.getElementById('myGif').style.display='none';  } \n";

      scriptString += "<";

      scriptString += "/";

      scriptString += "script>";
 

      ClientScript.RegisterStartupScript(this.GetType(), "test", scriptString);

    }

Open in new window

0

Featured Post

Is Your Active Directory as Secure as You Think?

More than 75% of all records are compromised because of the loss or theft of a privileged credential. Experts have been exploring Active Directory infrastructure to identify key threats and establish best practices for keeping data safe. Attend this month’s webinar to learn more.

Question has a verified solution.

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

Suggested Solutions

Sometimes in DotNetNuke module development you want to swap controls within the same module definition.  In doing this DNN (somewhat annoyingly) swaps the Skin and Container definitions to the default admin selections.  To get around this you need t…
In .NET 2.0, Microsoft introduced the Web Site.  This was the default way to create a web Project in Visual Studio 2005.  In Visual Studio 2008, the Web Application has been restored as the default web Project in Visual Studio/.NET 3.x The Web Si…
Internet Business Fax to Email Made Easy - With  eFax Corporate (http://www.enterprise.efax.com), you'll receive a dedicated online fax number, which is used the same way as a typical analog fax number. You'll receive secure faxes in your email, f…
Video by: Mark
This lesson goes over how to construct ordered and unordered lists and how to create hyperlinks.

895 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

Need Help in Real-Time?

Connect with top rated Experts

13 Experts available now in Live!

Get 1:1 Help Now