none
Textbox como pesquisa do Google RRS feed

  • Pergunta

  • Bom dia galera,

    to precisando do seguinte: preciso de um textbox igual a caixa de pesquisa do Google, conforme o usuário for digitando, ele vai mostrando os itens que contém aquele texto ou parte dele no banco de dados, e vai exibindo como o Google exibi, tipo uma lista, como se fosse um combobox, a cada letra digitada pelo usuário ele iria filtrando o resultado...

    Alguém tem algum tutorial, ou poderia dizer como devo pesquisar isto na net? 

    Sistema desenvolvido em C# e asp.net

    Fico no aguardo!

    Abraços


    Marcos Paulo - Analista de Sistemas


    terça-feira, 1 de outubro de 2013 12:06

Respostas

Todas as Respostas

  • Fala Marcos. 

    Cara encontrei algo que possa te ajudar. 

    http://www.andersonnarciso.com/2011/01/12/criando-um-buscador-com-ajax-e-autocompletar-igual-o-google-para-wordpress/

    https://developers.google.com/places/documentation/autocomplete

    http://www.princiweb.com.br/blog/programacao/google-apis/google-maps-api-v3-busca-de-endereco-e-autocomplete.html

    Espero que ajude. 

    Se ajudou marque. 

    Abraço.


    Voce pode encarar um erro como uma besteira a ser esquecida, ou como um resultado que aponta uma nova direcao by Steve Jobs

    terça-feira, 1 de outubro de 2013 12:12
  • Jquery Autocomplete faz isso para você

    http://jqueryui.com/autocomplete/


    Rafael Boschini

    terça-feira, 1 de outubro de 2013 12:38
  • Fala Marcos. 

    Cara encontrei algo que possa te ajudar. 

    http://www.andersonnarciso.com/2011/01/12/criando-um-buscador-com-ajax-e-autocompletar-igual-o-google-para-wordpress/

    https://developers.google.com/places/documentation/autocomplete

    http://www.princiweb.com.br/blog/programacao/google-apis/google-maps-api-v3-busca-de-endereco-e-autocomplete.html

    Espero que ajude. 

    Se ajudou marque. 

    Abraço.


    Voce pode encarar um erro como uma besteira a ser esquecida, ou como um resultado que aponta uma nova direcao by Steve Jobs

    Infelizmente esses links não foram uteis Fernando, o primeiro é bloqueado aqui na empresa, e quando abri no celular, ele está em PHP, não tenho nem idéia de como tirar a idéia do PHP e passar para C#, os outros links são mais voltados para mapas e localização e tal, seria muito trabalhoso para transformar num autocomplete, tava precisando de um tutorial mais básico, retornando dados do meu banco de dados conforme o usuário digita na textbox... Mas msm assim, já valeu a intenção, se tiver algum mais simples aí eu dou uma olhada...

    Abração


    Marcos Paulo - Analista de Sistemas

    terça-feira, 1 de outubro de 2013 12:43
  • Marcos encontrei um tutorial bem básico.

    http://www.c-sharpcorner.com/UploadFile/cd7c2e/create-an-auto-complete-list-like-google-using-jquery/

    Espero que esse ajude cara. 

    Desculpe pelo php. 

    Abraço.


    Voce pode encarar um erro como uma besteira a ser esquecida, ou como um resultado que aponta uma nova direcao by Steve Jobs

    • Marcado como Resposta Marcos Paulo P.M terça-feira, 1 de outubro de 2013 14:34
    terça-feira, 1 de outubro de 2013 12:54
  • Marcos encontrei um tutorial bem básico.

    http://www.c-sharpcorner.com/UploadFile/cd7c2e/create-an-auto-complete-list-like-google-using-jquery/

    Espero que esse ajude cara. 

    Desculpe pelo php. 

    Abraço.


    Voce pode encarar um erro como uma besteira a ser esquecida, ou como um resultado que aponta uma nova direcao by Steve Jobs

    Faalaaa Fernandoo, mais uma vez vlw pela ajuda cara, era isso mesmo que eu tava precisando, só uma questão que ta pegando ainda, ve se vc consegue me ajudar aí... a parada é a seguinte, eu utilizo 3 TextBox's na minha página, seria algo como, ele digitasse o País, depois digitasse o estado e por ultimo a cidade, então após digitar o país, eu passaria esse país como parametro para selecionar o estado por país e assim sucessivamente, não sei se vc chegou a abrir o tutorial, a criação do textbox é feita de maneira diferente, ele utiliza input e não asp:TextBox, dessa maneira, quando tento procurar o textbox no aspx.cs ele não encontra, vc saberia me dizer como pego o valor do textbox dessa maneira?? utilizando input ao inves de asp:TextBox?? só falta isso mesmo

    abraço


    Marcos Paulo - Analista de Sistemas

    terça-feira, 1 de outubro de 2013 14:38
  • Fala Marcos, que bom que te ajudou cara. 

    Então cara você pode alterar o input para asp:TextBox na boua cara o que vai importar é você manter o mesmo id, pois, é com ele que ele recupera o textBox na função Jquery.

    Acho que já irá te ajudar. 

    Abraço.


    Voce pode encarar um erro como uma besteira a ser esquecida, ou como um resultado que aponta uma nova direcao by Steve Jobs

    terça-feira, 1 de outubro de 2013 14:54
  • Num funcionou só trocar para TextBox não cara, coloquei assim e não retorna nada

    <asp:TextBox id="Sala" runat="server" onclick="return Sala_onclick()" AutoPostBack="True" />
    Acho q o jeito é tentar trazer este texto pro aspx.cs mesmo através do input pq só assim está funcionando, ou de repente existe outra maneira de fazer a função funcionar no asp:TextBox que eu não to sabendo fazer...


    Marcos Paulo - Analista de Sistemas

    terça-feira, 1 de outubro de 2013 17:21
  • Olha esse link Marcos. 

    http://www.asp.net/ajaxlibrary/act_autocomplete_simple.ashx

    http://forums.asp.net/t/1513943.aspx

    Acho que vai te ajudar Marcos. 

    Abraço.


    Voce pode encarar um erro como uma besteira a ser esquecida, ou como um resultado que aponta uma nova direcao by Steve Jobs

    terça-feira, 1 de outubro de 2013 17:33
  • Olha esse link Marcos. 

    http://www.asp.net/ajaxlibrary/act_autocomplete_simple.ashx

    http://forums.asp.net/t/1513943.aspx

    Acho que vai te ajudar Marcos. 

    Abraço.


    Voce pode encarar um erro como uma besteira a ser esquecida, ou como um resultado que aponta uma nova direcao by Steve Jobs

    Tente adicionar no textBox o onkeypress chamando a função jquery.

    Voce pode encarar um erro como uma besteira a ser esquecida, ou como um resultado que aponta uma nova direcao by Steve Jobs

    • Marcado como Resposta Marcos Paulo P.M sexta-feira, 4 de outubro de 2013 13:44
    terça-feira, 1 de outubro de 2013 17:34
  • Olha esse link Marcos. 

    http://www.asp.net/ajaxlibrary/act_autocomplete_simple.ashx

    http://forums.asp.net/t/1513943.aspx

    Acho que vai te ajudar Marcos. 

    Abraço.


    Voce pode encarar um erro como uma besteira a ser esquecida, ou como um resultado que aponta uma nova direcao by Steve Jobs

    Tente adicionar no textBox o onkeypress chamando a função jquery.

    Voce pode encarar um erro como uma besteira a ser esquecida, ou como um resultado que aponta uma nova direcao by Steve Jobs

    É mais ou menos o que eu to precisando Fernando, ta no caminho, o primeiro link ajudou bastante, o que falta agora é o seguinte, preciso passar o valor de um dos textbox para um método estático, mas não é possível acessar o txt dentro deste método, não consegui acessar a Session também. Neste método, como faria para pegar o valor do txt:

    public static string[] GetIsometrico(string prefixText, int count, string contextKey)
            {
                int count1 = 100;
                string sql = "SELECT ISO_NO FROM ANGRA3.TBISOME WHERE PSC_SYS = 'FAK' AND ISO_NO LIKE '" + @prefixText + "%' ";
                OleDbDataAdapter da = new OleDbDataAdapter(sql, (ConfigurationManager.ConnectionStrings["ConnectionString"].ToString()));
                da.SelectCommand.Parameters.Add("@prefixText", OleDbType.VarChar, 50).Value = prefixText;
                DataTable dt = new DataTable();
                da.Fill(dt);
                string[] items = new string[dt.Rows.Count];
                int i = 0;
                foreach (DataRow dr in dt.Rows)
                {
                    items.SetValue(dr["ISO_NO"].ToString(), i);
                    i++;
                }
                return items;
            }


    o que eu queria na verdade era substituir no select PSC_SYS pelo valor que o usuário digitou no textbox, na verdade teria que ser assim:

    public static string[] GetIsometrico(string prefixText, string PSC_SYS, int count, string contextKey)
            {
                int count1 = 100;
                PSC_SYS = txtPSC.text;
                string sql = "SELECT ISO_NO FROM ANGRA3.TBISOME WHERE PSC_SYS = '" + PSC_SYS + "' AND ISO_NO LIKE '" + @prefixText + "%' ";
                OleDbDataAdapter da = new OleDbDataAdapter(sql, (ConfigurationManager.ConnectionStrings["ConnectionString"].ToString()));
                da.SelectCommand.Parameters.Add("@prefixText", OleDbType.VarChar, 50).Value = prefixText;
                DataTable dt = new DataTable();
                da.Fill(dt);
                string[] items = new string[dt.Rows.Count];
                int i = 0;
                foreach (DataRow dr in dt.Rows)
                {
                    items.SetValue(dr["ISO_NO"].ToString(), i);
                    i++;
                }
                return items;
            }

    Voltamos naquele ponto onde não consigo acessar o txt, vc saberia como pegar este valor?? existe alguma maneira diferente??

    o conteúdo já foi de grande ajuda pois já consigo utilizar o txxbox e retorno o valor do banco, agora só preciso ler o valor do txt msm... 

    Abração  e vlw pela ajuda


    Marcos Paulo - Analista de Sistemas

    quarta-feira, 2 de outubro de 2013 17:30
  • Fala Marcos, cara no seu método estático você nao irá conseguir pegar o valor de nenhum dos controles html, acabei de testar rs. 

    Você terá de passar esse valor do TextBox através de parâmetro para seu método, só assim você irá conseguir utiliza-lo. 

    string valorTextBox = txtTeste.Text.Trim();
    
    this.GetIsometrico(valorTextBox);
    
    public static string[] GetIsometrico(string valorTxtBox)
    {
    
       seuCampo = valorTxtBox;
    
    }

    Assim você terá sucesso. 

    Espero que ajude cara. 

    Abraço.


    Voce pode encarar um erro como uma besteira a ser esquecida, ou como um resultado que aponta uma nova direcao by Steve Jobs

    quarta-feira, 2 de outubro de 2013 17:40
  • Fala Marcos, cara no seu método estático você nao irá conseguir pegar o valor de nenhum dos controles html, acabei de testar rs. 

    Você terá de passar esse valor do TextBox através de parâmetro para seu método, só assim você irá conseguir utiliza-lo. 

    string valorTextBox = txtTeste.Text.Trim();
    
    this.GetIsometrico(valorTextBox);
    
    public static string[] GetIsometrico(string valorTxtBox)
    {
    
       seuCampo = valorTxtBox;
    
    }

    Assim você terá sucesso. 

    Espero que ajude cara. 

    Abraço.


    Voce pode encarar um erro como uma besteira a ser esquecida, ou como um resultado que aponta uma nova direcao by Steve Jobs

    fala Fernando, não consegui entender como ficaria não cara, teria como vc demonstrar naquele método pra eu saber como ficaria?? Desde já vlw pela força

    Marcos Paulo - Analista de Sistemas

    quarta-feira, 2 de outubro de 2013 18:22
  • public static string[] GetIsometrico(string prefixText, string PSC_SYS, int count, string contextKey, string textBox)
            {
                int count1 = 100;
                PSC_SYS = textBox;
                string sql = "SELECT ISO_NO FROM ANGRA3.TBISOME WHERE PSC_SYS = '" + PSC_SYS + "' AND ISO_NO LIKE '" + @prefixText + "%' ";
                OleDbDataAdapter da = new OleDbDataAdapter(sql, (ConfigurationManager.ConnectionStrings["ConnectionString"].ToString()));
                da.SelectCommand.Parameters.Add("@prefixText", OleDbType.VarChar, 50).Value = prefixText;
                DataTable dt = new DataTable();
                da.Fill(dt);
                string[] items = new string[dt.Rows.Count];
                int i = 0;
                foreach (DataRow dr in dt.Rows)
                {
                    items.SetValue(dr["ISO_NO"].ToString(), i);
                    i++;
                }
                return items;
            }

    Ai na chamada desse método você acrescenta o parâmetro.

    string teste = textBox.Text;

    GetIsometrico(param1, param2, param3, ... , teste);

    Espero que tenha ficado mais claro.


    Voce pode encarar um erro como uma besteira a ser esquecida, ou como um resultado que aponta uma nova direcao by Steve Jobs

    quarta-feira, 2 de outubro de 2013 19:25
  • public static string[] GetIsometrico(string prefixText, string PSC_SYS, int count, string contextKey, string textBox)
            {
                int count1 = 100;
                PSC_SYS = textBox;
                string sql = "SELECT ISO_NO FROM ANGRA3.TBISOME WHERE PSC_SYS = '" + PSC_SYS + "' AND ISO_NO LIKE '" + @prefixText + "%' ";
                OleDbDataAdapter da = new OleDbDataAdapter(sql, (ConfigurationManager.ConnectionStrings["ConnectionString"].ToString()));
                da.SelectCommand.Parameters.Add("@prefixText", OleDbType.VarChar, 50).Value = prefixText;
                DataTable dt = new DataTable();
                da.Fill(dt);
                string[] items = new string[dt.Rows.Count];
                int i = 0;
                foreach (DataRow dr in dt.Rows)
                {
                    items.SetValue(dr["ISO_NO"].ToString(), i);
                    i++;
                }
                return items;
            }

    Ai na chamada desse método você acrescenta o parâmetro.

    string teste = textBox.Text;

    GetIsometrico(param1, param2, param3, ... , teste);

    Espero que tenha ficado mais claro.


    Voce pode encarar um erro como uma besteira a ser esquecida, ou como um resultado que aponta uma nova direcao by Steve Jobs

    Fala Fernando, deixei isso de lado cara, vou buscar os itens do banco msm e conforme o usuário vai digitando vai filtrando, o problema de passar os parametros na chamada do método é que este método não tem chamada, ele se eh chamado automaticamente quando o usuário começa a digitar no textbox, não passo nada pra ele, ele busca isso automaticamente, então não teria um trecho do código pra passar esses parametros. Mesmo assim valeu pela força, isso era só pra filtrar mais os dados, mas desta maneira já ta bom, vlw pela força ae cara, tem me ajudado bastante.

    abraço e bom final de semana...


    Marcos Paulo - Analista de Sistemas

    sexta-feira, 4 de outubro de 2013 13:43
  • Tamos ai pra isso cara. 

    Precisando. 

    Bom fds ai. 

    Abraço.


    Voce pode encarar um erro como uma besteira a ser esquecida, ou como um resultado que aponta uma nova direcao by Steve Jobs

    sexta-feira, 4 de outubro de 2013 14:11