none
Fazer uma consulta ao escrever no textbox RRS feed

  • Pergunta

  • Boa tarde. 

    estou com um problema, preciso fazer que quando um usuário for digitar um texto em um textbox ocorra um post e liste as informações para ser selecionada.

    Ex: Escrevo Joao no textbox, logo vai aparecer todos os nomes relacionados com joao para selecionar um.

    terça-feira, 22 de setembro de 2015 17:49

Respostas

  • http://www.aspsnippets.com/Articles/AJAX-AutoCompleteExtender-Example-in-ASPNet.aspx

    Está aí a solução , muito simples !!!!!!!!!!!!!!

    Funfando 100% 

    Agradeço a todos por participar.

    • Marcado como Resposta Jeff Valentim sexta-feira, 25 de setembro de 2015 19:18
    • Editado Jeff Valentim sexta-feira, 25 de setembro de 2015 19:20
    sexta-feira, 25 de setembro de 2015 19:18

Todas as Respostas

  • Jeff, boa tarde!

    Imagino que sua aplicação seja Web com ASP.NET.

    Você precisa implementar uma chamada assincrona via Javascript para realizar o autocomplete com sugestao de escolha.

    O seu textbox fica assim

    1. <asp:TextBox ID="txtNomerunat="server" Width="350px" CssClass="textboxAuto" Font-Size="12px" />

    Sua função em Javascript para fazer o Invoke assincrono é assim:

    1. <script language="javascript" type="text/javascript">
    2. $(function () {
    3. $('#<%=txtNome.ClienteID%>').autocomplete({
    4. source: function (request, response) {
    5. $.ajax({
    6. url: "Default.aspx/GetNomeCliente",
    7. data: "{ 'pre':'" + request.term + "'}",
    8. dataType: "json",
    9. type: "POST",
    10. contentType: "application/json; charset=utf-8",
    11. success: function (data) {
    12. response($.map(data.d, function (item) {
    13. return { value: item }
    14. }))
    15. },
    16. error: function (XMLHttpRequest, textStatus, errorThrown) {
    17. alert(textStatus);
    18. }
    19. });
    20. }
    21. });
    22. });
    23. </script>

    O WebMethod para retornar os dados do autocomplete é esse:

    1. [WebMethod]
    2. [ScriptMethod(ResponseFormat= ResponseFormat.Json)]
    3. public static List<string> GetNomeCliente(string pre)
    4. {
    5. List<string> allNomeCLiente = new List<string>();
    6. using (MyDatabaseEntities dc = new MyDatabaseEntities())
    7. {
    8. allNomeCLiente = (from a in dc.Cliente
    9. where a.NomeCliente.StartsWith(pre)
    10. select a.NomeCliente).ToList();
    11. }
    12. return allNomeCliente;
    13. }

    Abs


    Bruno D Maia

    • Sugerido como Resposta Marcos SJ terça-feira, 22 de setembro de 2015 18:55
    terça-feira, 22 de setembro de 2015 18:48
  • Boa tarde. 

    estou com um problema, preciso fazer que quando um usuário for digitar um texto em um textbox ocorra um post e liste as informações para ser selecionada.

    Ex: Escrevo Joao no textbox, logo vai aparecer todos os nomes relacionados com joao para selecionar um.

    Pergunto:

    1 - ASP.NET MVC ou WEBFORMS?

    2 - A sua pesquisa vai ser feito em um banco de dados?


    Fulvio Cezar Canducci Dias

    terça-feira, 22 de setembro de 2015 19:18
  • cara pode me ajudar, me perdi nesse momento 

    using (MyDatabaseEntities dc = new MyDatabaseEntities())

                allNomeCLiente = (from a in dc.Cliente where a.NomeCliente.StartsWith(pre) 
                select a.NomeCliente).ToList();
                                     

    Parece ser uma classe  pra fazer conexao com o banco 
    • Editado Jeff Valentim terça-feira, 22 de setembro de 2015 19:22
    terça-feira, 22 de setembro de 2015 19:22
  • webForms e é no banco.

    é possível fazer isso na própria tela no mesmo DT ? 

    terça-feira, 22 de setembro de 2015 19:27
  • webForms e é no banco.

    é possível fazer isso na própria tela no mesmo DT ? 

    Como é sua tela?

    Fulvio Cezar Canducci Dias

    terça-feira, 22 de setembro de 2015 20:22
  • é um gridview com 2 campos regiao e endereço.


     
    terça-feira, 22 de setembro de 2015 20:30
  • É apenas um Gridview com o campo Regiao e 2 campos de valor.
    quarta-feira, 23 de setembro de 2015 12:42
  • É apenas um Gridview com o campo Regiao e 2 campos de valor.
    Como você manipula os dados, como você carrega essa grid ??? 

    Fulvio Cezar Canducci Dias

    quarta-feira, 23 de setembro de 2015 13:01
  • sql1 = "select top 2 REGION,rate from rate where carrier IN ('gold','SILVER')  and REGION = '" + dtList.Rows[i]["REGION"].ToString() + "' order by idrate asc";
                    SqlCommand cmd2 = new SqlCommand(sql1, con1);
                    SqlDataReader reader2 = cmd2.ExecuteReader();
                    dtLinas.Load(reader2);

                    for (int l = 0; dtLinas.Rows.Count > l; l++)
                    {
                        if (dtLinas.Rows.Count == linha2)
                        {
                           decimal valorDif2 = Convert.ToDecimal(dtLinas.Rows[l]["rate"].ToString()) - Convert.ToDecimal(dtLinas.Rows[l + 1]["rate"].ToString());
                            string valorD = valorDif2.ToString();
                            string primeira = valorD[0].ToString();
                            if (primeira == "-")
                            {
                                valorcerto = Convert.ToDecimal(valorD.Substring(1));;
                            }
                            else
                            {
                                valorcerto = valorDif2 ;
                            }

                            Tarifas.Rows.Add();
                            Tarifas.Rows[i]["Region"] = dtLinas.Rows[l]["REGION"].ToString();
                            Tarifas.Rows[i]["TarifaAtual"] = dtLinas.Rows[l + 1]["rate"].ToString();
                            Tarifas.Rows[i]["TarifaDiferenca"] = valorcerto;
                           
                            linha2++;
                        }
                        else if (linha2 != 3)
                        {
                            
                            Tarifas.Rows.Add();
                            Tarifas.Rows[i]["Region"] = dtLinas.Rows[l]["REGION"].ToString();
                            Tarifas.Rows[i]["TarifaAtual"] = dtLinas.Rows[l]["rate"].ToString();
                            Tarifas.Rows[i]["TarifaDiferenca"] = 0;
                            
                            
                        }
                        dtLinas.Clear();
                        linha2 = 2;
                    }

                }

                ViewState["dt"] = Tarifas;
                GridView1.DataSource = Tarifas;
                GridView1.DataBind();
    quarta-feira, 23 de setembro de 2015 13:39
  • Olá Jeff,

    tudo bem?

    Podemos considerar as informações compartilhadas como respostas válidas para a sua pergunta?

    atenciosamente


    Marcos Roberto de Souza Junior

    Esse conteúdo e fornecido sem garantias de qualquer tipo, seja expressa ou implícita

    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 fácil para os outros visitantes encontrarem a resolução mais tarde.

    quarta-feira, 23 de setembro de 2015 15:01
  • ainda não, assim que for solucionado eu fecho.

    só mais 24h, se não eu fecho.

    quinta-feira, 24 de setembro de 2015 13:32
  • Jeff Valentim, seguinte!

    Você quer fazer uma pesquisa, correto ?

    Existe uma tabela com quais campos ?

    A pesquisa é trazer quais campos com qual(is) filtro(s) ?

    Descreve para gente parte a parte como seria essa pesquisa, dizendo assim como exemplo: (Tenho uma tabela tal que possui o campo1 que quero filtro por esse campo em um gridview), quanto mais detalhes melhor!

    Vamos fechar esse post da maneira correta!


    Fulvio Cezar Canducci Dias

    quinta-feira, 24 de setembro de 2015 14:09
  • Vamos dizer q foi digitado "abk" no textbox, vai mostrar pra selecionar ABKHAZIA OU ABKHAZIA_MOBILE

    quinta-feira, 24 de setembro de 2015 15:24
  • É exatamente oq o Daniel mencionou.

    http://dotnetawesome.blogspot.com/2013/12/autocomplete-textbox-without-webservice.html

    Vou dar uma lida.

    quinta-feira, 24 de setembro de 2015 15:28
  • Na sua SQL coloque 

    Region Like '%' + TextBox.Text +'%';
    Ou seja, na SQL abaixo você coloque um LIKE !!!

    sql1 = "select top 2 REGION,rate from rate where carrier IN ('gold','SILVER')

    and REGION = '" + dtList.Rows[i]["REGION"].ToString() + "' order by idrate asc";




    Fulvio Cezar Canducci Dias

    quinta-feira, 24 de setembro de 2015 15:29
  • Fulvio, esse evento tem que acontecer ao digitar e não quando for fazer um post.
    quinta-feira, 24 de setembro de 2015 15:34
  • Utilize AJAX PARA FAZER ISSO ENTÃO, no modo tradicional é sempre um POST.

    Você pode utilizar Angular! tem muito material sobre ele na internet de fácil implementação.


    Fulvio Cezar Canducci Dias


    quinta-feira, 24 de setembro de 2015 16:24
  • Vou verificar obrigado por ajudar.

    quinta-feira, 24 de setembro de 2015 17:27
  • Olá Pessoas,

    tudo bem?

    A pergunta inicial já foi respondida?

    Atenciosamente


    Marcos Roberto de Souza Junior

    Esse conteúdo e fornecido sem garantias de qualquer tipo, seja expressa ou implícita

    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 fácil para os outros visitantes encontrarem a resolução mais tarde.

    quinta-feira, 24 de setembro de 2015 20:01
  • Eu acredito que ela esteja em aberto, porque, ele queria digitar na caixa e fazer filtro na tela sem dar request !!!
    Na minha visão era um pouco além do que está na questão!


    Fulvio Cezar Canducci Dias

    quinta-feira, 24 de setembro de 2015 20:05
  • Entendo, porém independente de outras questões que possam vir a surgir a partir desta ou por conta dela, preciso saber se a pergunta inicial foi respondida. Caso ele tenha qualquer outra dúvida ele precisa abrir uma nova thread se for o caso.

    Atenciosamente


    Marcos Roberto de Souza Junior

    Esse conteúdo e fornecido sem garantias de qualquer tipo, seja expressa ou implícita

    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 fácil para os outros visitantes encontrarem a resolução mais tarde.


    • Editado Marcos SJ sexta-feira, 25 de setembro de 2015 10:20
    sexta-feira, 25 de setembro de 2015 10:19
  • http://www.aspsnippets.com/Articles/AJAX-AutoCompleteExtender-Example-in-ASPNet.aspx

    Está aí a solução , muito simples !!!!!!!!!!!!!!

    Funfando 100% 

    Agradeço a todos por participar.

    • Marcado como Resposta Jeff Valentim sexta-feira, 25 de setembro de 2015 19:18
    • Editado Jeff Valentim sexta-feira, 25 de setembro de 2015 19:20
    sexta-feira, 25 de setembro de 2015 19:18