Pergunta

Preciso implementar uma funcionalidade em que primeiro tenho que mostrar a Java Script a partir do código-atrás de ficheiro e, em seguida, o usuário precisa ser redirecionado para outra página.

Eu tenho usado ambos os

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

e

ClientScriptManager.RegisterStartupScript();

mas nenhum deles estava mostrando caixa de alerta o fragmento de código como está :

//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);

mas nenhum deles mostra a caixa de alerta

Por favor me ajudem

Foi útil?

Solução

O script nunca irá torná-lo para o cliente porque o redirecionamento.Você precisa enviar o script com o alerta e, em seguida, postback para realizar o redirecionamento (eca) ou realizar o redirecionamento no script fazendo um localização.substituir a URL que você deseja para redirecionar para...você também pode definir o local.href para a URL do bem.

Então, você poderia fazer algo assim:

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

Outras dicas

Estes métodos de registos e adiciona o bloco de script para a página.Então, ele vai disparar depois que a página é processada a partir do servidor.No seu caso, você está redirecionando para alguma outra página, enquanto o script está registrado na página anterior.

Por isso não gostaria de fogo na página anterior.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a sharepoint.stackexchange
scroll top