Auto complete

03/04/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

Respostas

11/04/2008

Andredsanches

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,


Responder Citar

11/04/2008

Groove

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!!!


Responder Citar

15/04/2008

Ivan.c#

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

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


Responder Citar