sexta-feira, 16 de janeiro de 2009

Artigo Nº 17: Usando AutoCompleteExtender do Ajax Control Toolkit

Opa.... Hoje um post de como se utiliza o AutoComplete, este recurso é usado agora pelo google para mostrar perguntas freqüentes. É nada mais nada menos que mostrar os possíveis complementos para uma palavra que esteja sendo digitada em um textbox.

Para começo adicione os componentes ajax básicos (UpdatePanel e ScriptManager) e em seguida um textbox e o componente AutoCompleteExtender, feito isso vá para o aspx para adicionar uma coisa no componente AutoCompleteExtender, é:
  • servicemethod="AutoCompleta"
Entre aspas duplas é a função que estará no .pas portanto vamos lá declara-la.

[WebMethod]
class function AutoCompleta(prefixText: string; count: Integer): TStringArray; static;

...isso mesmo tem sim um [WebMethod] ali junto na declaração dela, e se tentar compilar vai dar erro, então adicione System.Web.Services nas suas uses. Outra coisa necessária a se fazer é logo depois do Type fazer esta declaração:

TStringArray = array of string;

Pois o delphi não aceita funções que retornem array of string, então se da uma enrolada nele. Agora vamos para o código da nossa função.

PESSOA := TuClassPessoa.create; SetLength(Result, Count); for I := 1 to count do
begin
Result[I - 1] := PESSOA.AutoComplete(prefixText,I);
end;


Bom, aqui foi o básico, tenho uma classe que retorna uma string com uma sql que faz o filtro por like, isso vocês mesmos podem fazer fácil fácil, e no final retorno uma array of string com o result (lembra pra enganar ele criamos um tipo chamado TStringArray. A variavel prefixText vem do componente AutoComplete que é o texto digitado no textbox. Bom, esta feito e agora vamos ao teste.


Como podem ver comecei a digitar meu nome e já me trouxe vários Mauricio, e podem ver que cada uma dessas enormes linhas é uma string que ele retornou da minha função. Axo que era isso por hoje.

Abração e Até

2 comentários:

Sipmann disse...

Pois é... o cara não posta =]
temo que contribui uashuashuashashu
flwwwww té

signori http://blogsignori.blogspot.com disse...

uhasuahsa... ta bom..
tranquilo...