none
Scripts aspnet RRS feed

  • Pergunta

  • Boa tarde ,

    A minha questão é a seguinte:

    Tenho um metodo em c# no aspx.cs que no caso de já existir o nome da pesquisa na tabela vai avisar o utilizador de que a pesquisa já existe e se quer substituir.

    O problema é que antes de o utilizador dizer se quer substituir o resto do metodo já chegou ao fim e substitui sempre independentemente de o utilizador dizer que não.

    Segue o Javascript:

    function alertapesquisaexistente() {
        if (confirm("O nome da pesquisa já existe! Deseja substituir a pesquisa?")) {
            return true;
        }
        else {
    
            return false;
        }
    
    }

    Código c# do ficheiros aspx.cs

      else
                        {
                                //Verifica qual a opção selecionada pelo utilzador.
                                //se o utilizador cancelar deve voltar ao incio da função.
    
                                ClientScript.RegisterStartupScript(this.GetType(), "valida", "alertapesquisaexistente();", true);
    
                                
                                //Update da ordenação presente na pesquisa
                                ligar.Query = "update gc_tabela_gpesquisas set ordenacao='" + somavalorordenacao + "', dtupdate='" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss.FFF") + "' where Id=(select id from gc_tabela_gpesquisas where nomepesquisa='" + nome.Text.Trim() + "')";
                                ligar.Write();
    
                                //Apaga as linhas com o id do nome alterado
                                ligar.Query = "delete from gc_tabela_gpesquisasdet where idcabgpesquisa=(select id from gc_tabela_gpesquisas where nomepesquisa='" + nome.Text.Trim() + "')";
                                ligar.Write();
    
                                //Adiciona novas linhas
                                foreach (DataRow linha in linhas.Rows)
                                {
                                    ligar.Query = "insert into gc_tabela_gpesquisasdet (iditem,idcabgpesquisa) values('" + linha.ItemArray[0].ToString() + "',(select id from gc_tabela_gpesquisas where nomepesquisa='" + nome.Text.Trim() + "'))";
                                    ligar.Write();
                                }
    
                        }

    Alguém me pode ajudar?

    Élio

    quinta-feira, 5 de julho de 2012 15:34

Respostas

  • Dentro da mesma página!!!!!!!!!!!

    Você vai mandar exibir onde precisa, logo dentro do else!


    Paulo César Viana
    MCC,MCP,MCTS
    --

    Marque as respostas e contribua para uma melhora no fórum.

    • Marcado como Resposta Harley Araujo quinta-feira, 19 de julho de 2012 13:41
    quinta-feira, 5 de julho de 2012 18:20
  • Ok

    Então vou criar dentro da mesma página.

    E experimentar.

    Se tiver alguma dúvida voltarei a chatear:)


    Obrigado, Élio Godinho

    • Marcado como Resposta Harley Araujo quinta-feira, 19 de julho de 2012 13:41
    quinta-feira, 5 de julho de 2012 18:24

Todas as Respostas

  • Coloque o return...

    Assim:

    ClientScript.RegisterStartupScript(this.GetType(), "valida", "return alertapesquisaexistente();", true);



    Paulo César Viana
    MCC,MCP,MCTS
    --

    Marque as respostas e contribua para uma melhora no fórum.

    quinta-feira, 5 de julho de 2012 15:40
  • Coloquei assim:

    ClientScript.RegisterStartupScript(this.GetType(), "valida", "return alertapesquisaexistente();", true);

    Mas assim nem dá a mensagem e substitui logo.

    Élio

    quinta-feira, 5 de julho de 2012 16:27
  • Tudo isto fica dentro de algum evento??

    Paulo César Viana
    MCC,MCP,MCTS
    --

    Marque as respostas e contribua para uma melhora no fórum.

    quinta-feira, 5 de julho de 2012 16:56
  • Sim fica.

    Vou colocar o metodo completo para que possas ver.

            protected void Button1_Click(object sender, EventArgs e)
            {
                ficheiro.Value=Request.QueryString["ficheiro"];
                var tipopesquisa = passatipo(Request.QueryString["ficheiro"]);
                //ir buscar campos de ordenação
                string valorordenacao = "";
                //somar os campos de todas as linhas para ordenacao
                string somavalorordenacao = "";
    
                try
                {
                    SQL ligar = new SQL(WebConfigurationManager.ConnectionStrings["sqlserver"].ConnectionString);
    
                    ligar.Query = "select p.ordenapesq from gc_tabcampos_ordenaitem p join gc_tabelacampossel s on p.id=s.idcampo where iduser='" + Session["userid"].ToString() + "' and tipo='"+tipopesquisa+"' order by s.id";
                    DataTable ORDENA = ligar.Read();
                    foreach (DataRow valorordena in ORDENA.Rows)
                    {
                        valorordenacao = valorordena.ItemArray[0].ToString();
    
                        if (somavalorordenacao != string.Empty)
                        {
                            somavalorordenacao = somavalorordenacao + "+";
                        }
                        somavalorordenacao = somavalorordenacao + valorordenacao;
    
                    }
    
                    //Verifica se existe algum item selecionado
                    ligar.Query = "select IDITEM from " + ficheiro.Value + "_" + Session["userid"].ToString() + " where checkado=1";
                    DataTable linhas = ligar.Read();
                    if (linhas.Rows.Count > 0)
                    {
    
                        ligar.Query = "select nomepesquisa from gc_tabela_gpesquisas where nomepesquisa='" + nome.Text.Trim() + "'";
                        DataTable dados = ligar.Read();
    
                        //Verifica se já existe alguma pesquisa com o nome que esta na textbox
                        //Se  o numero de linhas devolvidas pela query for igual a 0 cria a nova tabela senão apaga as linhas e faz update.
                        if (dados.Rows.Count == 0)
                        {
                                //Insere nova linha com o nome da pesquisa
                                ligar.Query = "insert into gc_tabela_gpesquisas (nomepesquisa,ordenacao,dtcriacao,dtupdate,iduser) values('" + nome.Text.Trim() + "','" + somavalorordenacao + "','" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss.FFF") + "','" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss.FFF") + "','" + Session["userid"].ToString() + "')";
                                ligar.Write();
    
                                //Adiciona novas linhas com o id da linha do nome da pesquisa
                                foreach (DataRow linha in linhas.Rows)
                                {
                                    ligar.Query = "insert into gc_tabela_gpesquisasdet (iditem,idcabgpesquisa) values('" + linha.ItemArray[0].ToString() + "',(select id from gc_tabela_gpesquisas where nomepesquisa='" + nome.Text.Trim() + "'))";
                                    ligar.Write();
                                }
    
                        }
                        else
                        {
                                //Verifica qual a opção selecionada pelo utilzador.
                                //se o utilizador cancelar deve voltar ao incio da função.
                                ClientScript.RegisterStartupScript(this.GetType(), "valida", "return alertapesquisaexistente();", true);
    
                                
                                //Update da ordenação presente na pesquisa
                                ligar.Query = "update gc_tabela_gpesquisas set ordenacao='" + somavalorordenacao + "', dtupdate='" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss.FFF") + "' where Id=(select id from gc_tabela_gpesquisas where nomepesquisa='" + nome.Text.Trim() + "')";
                                ligar.Write();
    
                                //Apaga as linhas com o id do nome alterado
                                ligar.Query = "delete from gc_tabela_gpesquisasdet where idcabgpesquisa=(select id from gc_tabela_gpesquisas where nomepesquisa='" + nome.Text.Trim() + "')";
                                ligar.Write();
    
                                //Adiciona novas linhas
                                foreach (DataRow linha in linhas.Rows)
                                {
                                    ligar.Query = "insert into gc_tabela_gpesquisasdet (iditem,idcabgpesquisa) values('" + linha.ItemArray[0].ToString() + "',(select id from gc_tabela_gpesquisas where nomepesquisa='" + nome.Text.Trim() + "'))";
                                    ligar.Write();
                                }
                        }
                    }
                    else
                    {
                        //Se o numero de linhas for igual a zero avisa o utilizador e retorna ao inicio da função
                        ClientScript.RegisterStartupScript(this.GetType(), "verificar linhas", "alert('Tem que selecionar pelo menos uma linha!');", true);
                        return;
                    }
    
                    nome.Text = "";
    
                    ligar.closeConnection();
    
                    ClientScript.RegisterStartupScript(this.GetType(), "confirmar", "alert('Pesquisa criada com sucesso!');", true);
                }
                catch(Exception erro)
                {
                    Response.Write(erro);
                    //ClientScript.RegisterStartupScript(this.GetType(), "erro", "alert('Erro a criar pesquisa!');", true);
                    //return;
                }
                    
            }


    Obrigado, Élio Godinho

    quinta-feira, 5 de julho de 2012 17:03
  • Neste seu caso acredito que o melhor é usar ModalPopup.

    Paulo César Viana
    MCC,MCP,MCTS
    --

    Marque as respostas e contribua para uma melhora no fórum.

    quinta-feira, 5 de julho de 2012 17:26
  • E como fazia?


    Obrigado, Élio Godinho

    quinta-feira, 5 de julho de 2012 18:02
  • No seu caso é mais complicado por que você quer mostrar o confirm depois depois do PostBack. Por isto acho melhor usar um modal.

    http://www.asp.net/ajaxLibrary/AjaxControlToolkitSampleSite/ModalPopup/ModalPopup.aspx


    Paulo César Viana
    MCC,MCP,MCTS
    --

    Marque as respostas e contribua para uma melhora no fórum.

    quinta-feira, 5 de julho de 2012 18:04
  • O  modal tem que estar associado a um botão?

    A questão é que o modal só pode aparecer depois de carregar no botão e se o nome já existir!


    Obrigado, Élio Godinho

    quinta-feira, 5 de julho de 2012 18:10
  • Não cara....

    Ele vai ficar escondido. Quando vc precisar mostrar basta mandar exibir com o método Show.


    Paulo César Viana
    MCC,MCP,MCTS
    --

    Marque as respostas e contribua para uma melhora no fórum.

    quinta-feira, 5 de julho de 2012 18:12
  • Então...

    Tenho o aspx que tem o botão de gravar...

    Tenho que criar um novo aspx com o modal ou pode ficar no mesmo aspx?

    Só faço o show dentro do else onde agora tenho o clientscript, é isso?


    Obrigado, Élio Godinho

    quinta-feira, 5 de julho de 2012 18:17
  • Dentro da mesma página!!!!!!!!!!!

    Você vai mandar exibir onde precisa, logo dentro do else!


    Paulo César Viana
    MCC,MCP,MCTS
    --

    Marque as respostas e contribua para uma melhora no fórum.

    • Marcado como Resposta Harley Araujo quinta-feira, 19 de julho de 2012 13:41
    quinta-feira, 5 de julho de 2012 18:20
  • Ok

    Então vou criar dentro da mesma página.

    E experimentar.

    Se tiver alguma dúvida voltarei a chatear:)


    Obrigado, Élio Godinho

    • Marcado como Resposta Harley Araujo quinta-feira, 19 de julho de 2012 13:41
    quinta-feira, 5 de julho de 2012 18:24