none
Script Alert desconfigura layout em jquery RRS feed

  • Pergunta

  • Uso VS2010, asp.net4 C# e jQuery 8.1+

    Em uma tela de cadastro uso accordion jQuery, quando abro a página mostra tudo no lugar, mas no click do botão salvar no lado servidor, se por algum motivo o cadastro não puder ser efetuado retorno um alerta com a mensagem como a abaixo:

    {

     ScriptManager.RegisterStartupScript(Page, typeof(Page), "AlertScript", "alert('INFORME TODOS OS CAMPOS OBRIGATÓRIOS.');", true);                
                    txtNome.Focus();
                    return;

    }

    Logo em seguida a página fica desconfigurada, sem mostrar o layout certinho dos accordion, e isso acontece em outras páginas como faço pra dar o alerta sem desconfigurar a página? 


    Álvaro Luiz




    domingo, 8 de março de 2015 19:33

Respostas

  • Bom dia Álvaro!

    Então use esse tipo de renderização: window.location.href='PáginaDesejada';

    Este comando respeita o alert, como eu havia dito no outro comentário!

    Qualquer coisa avise!

    sexta-feira, 13 de março de 2015 12:07

Todas as Respostas

  • Boa tarde Álvaro,

    Por favor, coloque todo o código para analisarmos. E mais uma dúvida, qual a ação que você está tomando para gerar esse erro??

    Fico no aguardo,

    Obrigado,

    Abraço!


    Eduardo Romero

    Esse conteudo e fornecido sem garantias de qualquer tipo, seja expressa ou implicita.

    MSDN Community Support

    Por favor, lembre-se de Marcar como Resposta as respostas que resolveram o seu problema. Essa e uma maneira comum de reconhecer aqueles que o ajudaram e fazer com que seja mais facil para os outros visitantes encontrarem a resolucao mais tarde.

    quarta-feira, 11 de março de 2015 17:32
    Moderador
  • A seguir tem é a página de cadastro de novo usuário uso jQuery accordion, autocomplete... no final dela tem um botão aspx que no seu click salva a página, mas antes é feito uma validação dos campos, essa validação é feita tanto no lado cliente quanto no lado servidor, se a validação do lado cliente for insatisfeita, gera um alerta e a pagina continua funcionando ok, mas caso ocora no lado servidor, retorna a página desconfigurada, isto é, sem funcionar os jquery´s nela contido.

    -------------------------

            

    <%@ Page Language="C#" AutoEventWireup="true" CodeFile="NovoUsuario.aspx.cs" Inherits="Modulo_Usuario_NovoUsuario" %>

    <%@ Register Assembly="AjaxControlToolkit" Namespace="AjaxControlToolkit" TagPrefix="asp" %>
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <script runat="server">

    </script>
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head id="Head1" runat="server">
        <title></title>
        <link href="../../Styles/Site.css" rel="stylesheet" type="text/css" />
        <link href="../../Script/js/development-bundle/themes/custom-theme/jquery-ui.css"
            rel="stylesheet" type="text/css" />
        <script src="../../Script/js/development-bundle/jquery-1.8.3.js" type="text/javascript"></script>
        <script src="../../Script/js/js/jquery-ui.js" type="text/javascript"></script>
        <link href="../../Script/js/development-bundle/themes/custom-theme/jquery.ui.all.css"
            rel="stylesheet" type="text/css" />   
        <script src="../../Script/js/development-bundle/ui/jquery.ui.accordion.js" type="text/javascript"></script>  
        <script type="text/javascript">

            $(document).ready(function () {
                $("#accordionF").accordion({
                    fillSpace: true
                });        

                        .........

               
                    <asp:Button ID="btnSalvar" runat="server" CssClass="btnAzul90" Text="Salvar" OnClientClick="return ValidaText(); ValidarEmail();"
                        OnClick="btnSalvar_Click" />
                </div>
            </ContentTemplate>
            <Triggers>
                <asp:AsyncPostBackTrigger ControlID="btnSalvar" />          
            </Triggers>
        </asp:UpdatePanel>
        </form>
    </body>
    </html>

    -----------------

    o click do botão salvar:

    ----------------

     protected void btnSalvar_Click(object sender, EventArgs e)
        {     
           
                if (!(string.IsNullOrWhiteSpace(txtPessoa.Value.Trim())) && !(string.IsNullOrWhiteSpace(txtCpf.Text.Trim()))
                   && !(string.IsNullOrWhiteSpace(txtLogin.Text.Trim())) && !(string.IsNullOrWhiteSpace(txtSenha1.Text.Trim()))
                   && !(string.IsNullOrWhiteSpace(txtPergunta.Text.Trim())) && !(string.IsNullOrWhiteSpace(txtResposta.Text.Trim()))
                   && !(string.IsNullOrWhiteSpace(txtEmail.Text.Trim())) && !(string.IsNullOrWhiteSpace(txtNascimento.Text))
                   && !(string.IsNullOrWhiteSpace(ddSexo.Text)) && !(string.IsNullOrWhiteSpace(ddTipo.Text.Trim()))
                   && !(string.IsNullOrWhiteSpace(txtLogradouro.Text.Trim())) && !(string.IsNullOrWhiteSpace(txtBairro.Text.Trim()))
                   && !(string.IsNullOrWhiteSpace(txtCep.Value.Trim())) && !(string.IsNullOrWhiteSpace(txtCidade.Text.Trim()))
                   && !(string.IsNullOrWhiteSpace(ddUf.Text.Trim())))
                {

    //// FAZ A VALIDAÇÃO DOS CAMPOS E SALVA A PÁGINA

      }
                else
                {
                    ScriptManager.RegisterStartupScript(Page, typeof(Page), "AlertScript", "alert('PREENCHA TODOS OS CAMPOS OBRIGATÓRIOS');", true);
                    return;
                }


    Álvaro Luiz

    quarta-feira, 11 de março de 2015 17:52
  • Álvaro,

    Esse return dentro do seu else, deveria retornar o que? A página de cadastro?

    Obrigado,

    Abraço!


    Eduardo Romero

    Esse conteudo e fornecido sem garantias de qualquer tipo, seja expressa ou implicita.

    MSDN Community Support

    Por favor, lembre-se de Marcar como Resposta as respostas que resolveram o seu problema. Essa e uma maneira comum de reconhecer aqueles que o ajudaram e fazer com que seja mais facil para os outros visitantes encontrarem a resolucao mais tarde.

    quarta-feira, 11 de março de 2015 18:09
    Moderador
  • Eu uso pra parar o evento de salvar.

    Em seguida deveria voltar a tela para o usuário preencher os campos que falta, mas volta desconfigurado sem funcionar os jquery´s


    Álvaro Luiz

    quarta-feira, 11 de março de 2015 18:16
  • Boa Tarde, como o javascript não renderiza a página, em alguns casos ela pode se perder.

    Como recomendação acrescente esse comando javascript: window.location('Local para onde ir');

    Neste caso, você renderiza para a mesma página para que ela volte limpa, este comando deve ser inderido depois do seu alert.

    quarta-feira, 11 de março de 2015 19:31
  • Álvaro,

    Marquei a resposta do Roberto, pois parece razoável para resolver seu problema. Se não resolver, desmarque a resposta e nos de mais detalhes do que está acontecendo que continuaremos ajudando.

    Obrigado,

    Abraço!


    Eduardo Romero

    Esse conteudo e fornecido sem garantias de qualquer tipo, seja expressa ou implicita.

    MSDN Community Support

    Por favor, lembre-se de Marcar como Resposta as respostas que resolveram o seu problema. Essa e uma maneira comum de reconhecer aqueles que o ajudaram e fazer com que seja mais facil para os outros visitantes encontrarem a resolucao mais tarde.

    quarta-feira, 11 de março de 2015 19:56
    Moderador
  • Olá Roberto, estou colocando o código abaixo e um redirect mas não exibe a mensagem e redireciona imediatamente, gostaria que exibisse a mensagem e logo após redirecionasse:

    ScriptManager.RegisterStartupScript(Page, typeof(Page), "AlertScript", "alert(' ERRO AO CRIAR USUÁRIO');", true);

    Response.Redirect("~/NovoUsuario.aspx");   


    Álvaro Luiz

    quinta-feira, 12 de março de 2015 22:50
  • Bom dia Álvaro!

    Então use esse tipo de renderização: window.location.href='PáginaDesejada';

    Este comando respeita o alert, como eu havia dito no outro comentário!

    Qualquer coisa avise!

    sexta-feira, 13 de março de 2015 12:07
  • Deveria ser do lado servidor, "window.location.href" funciona do lado servidor??

    Álvaro Luiz

    domingo, 15 de março de 2015 17:42
  • Bom dia Álvaro, funciona sim!

    segunda-feira, 16 de março de 2015 11:53