Array
(
)

Auto complete

Andredsanches
   - 03 abr 2008

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,

Andredsanches
   - 11 abr 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,

Groove
   - 11 abr 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!!!

Ivan.c#
   - 15 abr 2008

André eu uso o autocomplete do toolkit com webservices e funciona numa boa.

http://www.asp.net/AJAX/AjaxControlToolkit/Samples/AutoComplete/AutoComplete.aspx