Java script caixa de alerta não está sendo exibido através do arquivo de código C#
-
10-12-2019 - |
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
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.