Auto complete
Pessoas, implementei um auto-complete ´manual´ para a TextBox de um componente que eu fiz, e esse auto-complete é tratado no evento ´keyup´. Beleza, isso funciona se eu digito devagar. Porém, se eu digito rápido, todo o tratamento que eu faço pro tal auto-complete é simplesmente perdido.
Alguém tem alguma idéia de como arrumar isso?
Grato,
Alguém tem alguma idéia de como arrumar isso?
Grato,
Andredsanches
Curtidas 0
Respostas
Andredsanches
03/04/2008
Pessoal,
Quando postei este tópico eu estava sem muita noção do que realmente ocorria. Ontem voltei a trabalhar em cima deste meu componente e percebi que o problema do auto-complete está na forma de como o C# dispara os eventos quando o usuário digita.
Quando eu digito algo na minha textbox, pego a ´substring´ da linha de edição, procuro em uma lista de ítens a primeira ocorrência desta substring e sugiro ao usuário, deixando a sugestão selecionada, de modo que se o usuário digitar mais um caractere, o complemento sugerido é apagado, entra o novo caractere no lugar e uma nova busca é feita, e assim por diante. Já tentei utilizar o auto-complete padrão da linguagem mas não atendeu aos meus requisitos.
Pois bem, como o processo de ´busca pela ocorrência da substring´ é demorado, quando o usuário digita rápido o trabalho é perdido, pois entra um novo caractere na textbox e os eventos deste último caracteres são disparados antes mesmo da conclusão dos eventos do caractere anterior!
Creio que desta vez ficou um pouco mais claro. Preciso saber se existe um jeito de colocar esses eventos para serem tratados de forma sequencial. Se alguém souber, please, dê uma luz hehehehe
Abraços,
Quando postei este tópico eu estava sem muita noção do que realmente ocorria. Ontem voltei a trabalhar em cima deste meu componente e percebi que o problema do auto-complete está na forma de como o C# dispara os eventos quando o usuário digita.
Quando eu digito algo na minha textbox, pego a ´substring´ da linha de edição, procuro em uma lista de ítens a primeira ocorrência desta substring e sugiro ao usuário, deixando a sugestão selecionada, de modo que se o usuário digitar mais um caractere, o complemento sugerido é apagado, entra o novo caractere no lugar e uma nova busca é feita, e assim por diante. Já tentei utilizar o auto-complete padrão da linguagem mas não atendeu aos meus requisitos.
Pois bem, como o processo de ´busca pela ocorrência da substring´ é demorado, quando o usuário digita rápido o trabalho é perdido, pois entra um novo caractere na textbox e os eventos deste último caracteres são disparados antes mesmo da conclusão dos eventos do caractere anterior!
Creio que desta vez ficou um pouco mais claro. Preciso saber se existe um jeito de colocar esses eventos para serem tratados de forma sequencial. Se alguém souber, please, dê uma luz hehehehe
Abraços,
GOSTEI 0
Groove
03/04/2008
Bom já que não consegui responder do jeito q vc quer vamos ver se consigo de outro
Vc já pensou em usar o AJAX????
ou até mesmo um JavaScript????
desculpe mas não me ocorre mais nada!!!
Vc já pensou em usar o AJAX????
ou até mesmo um JavaScript????
desculpe mas não me ocorre mais nada!!!
GOSTEI 0
Ivan.c#
03/04/2008
André eu uso o autocomplete do toolkit com webservices e funciona numa boa.
http://www.asp.net/AJAX/AjaxControlToolkit/Samples/AutoComplete/AutoComplete.aspx
http://www.asp.net/AJAX/AjaxControlToolkit/Samples/AutoComplete/AutoComplete.aspx
GOSTEI 0