2

I need to implement a functionality in which first I have to show Java Script from code behind file and then user needs to be redirected to other page.

I have used both

this.Context.Response.Write("<script type='text/javascript'>alert('some text')</script>");

and

ClientScriptManager.RegisterStartupScript();

but none of them were showing alert box the code snippet is as :

//approach 1
    this.Context.Response.Write("<script type='text/javascript'>alert('some text')</script>");
  SPUtility.Redirect(string.Empty, SPRedirectFlags.UseSource, this.Context);

//approach 2
String csname1 = "PopupScript";
                Type cstype = this.GetType();

                // Get a ClientScriptManager reference from the Page class.
                ClientScriptManager cs = Page.ClientScript;

                // Check to see if the startup script is already registered.
                if (!cs.IsStartupScriptRegistered(cstype, csname1))
                {
                    StringBuilder cstext1 = new StringBuilder();
                    cstext1.Append("<script type=text/javascript> alert('You do not have Access to perform any action.') </");
                    cstext1.Append("script>");

                    cs.RegisterStartupScript(cstype, csname1, cstext1.ToString());
                }
  SPUtility.Redirect(string.Empty, SPRedirectFlags.UseSource, this.Context);

but none of them shows alert box

Please help me out

2 Answers 2

2

The script will never make it to the client because of the redirect. You either need to send the script with the alert and then postback to perform the redirect (yuck) or perform the redirect in the script by doing a location.replace to the URL you want to redirect to...you could also set location.href to the URL as well.

So you could do something like this:

ClientScript.RegisterClientScriptBlock(this.GetType(), "scriptname", "alert('some message'");location.replace('url to redirect to');", true);
1

These methods registers and adds the script block to the page. So it will fire after the page is rendered from the server. In your case you are redirecting to some other page while the script is registered on the previous page.

So it would not fire on the previous page.

2
  • Thanks @Aanchal got your point , is there any other approach to solve the problem
    – nbi
    Commented May 21, 2014 at 9:24
  • You can register the script and based on the result of the alert dialog redirect to the another page with javascript.
    – Aanchal
    Commented May 21, 2014 at 9:39

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.