Pergunta

Em um aplicativo da web asp.net, tenho um pop-up modal criado com uma janela Telerik Rad.Nesse popup existe um botão que deve realizar alguma ação em seu "code-behind" e então redirecionar a aplicação para outra página.

Para o redirecionamento utilizo o comando javascript 'top.document.location.href = myPage' (enviado ao navegador a partir do code-behind com um ScriptManager.RegisterClientScriptBlock(...)).

Isso resolve meu problema, mas não é muito bom.Quando o botão é pressionado, isso aciona o post-back.No navegador, o pop-up é coberto por um RadLoadingPanel que desaparece quando o post-back é concluído.Então, durante alguns segundos, nada acontece na aplicação e só depois de algum tempo o navegador carrega a nova página.

O fato de nada acontecer durante alguns segundos não é bom, pois o usuário não pode saber o que o aplicativo está fazendo.

O que posso fazer ?Existe uma maneira melhor de fazer o redirecionamento?(Sou muito novo em programação javascript...).

Foi útil?

Solução

Em vez de apenas chamar 'top.document.location.href = myPage', você pode chamar uma função que exibe uma sobreposição (por exemplo,mostre um RadAjaxLoadingPanel sobre o corpo da página pai) e defina o novo URL.Ver http://www.telerik.com/help/aspnet-ajax/ajxshowhideloadingpanel.html para obter informações sobre como mostrar painéis de carregamento com JavaScript.

Acho que o atraso após você definir location.href é normal - o navegador/servidor leva algum tempo para recuperar o HTML da nova página, para que a página antiga não possa desaparecer instantaneamente.

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