Guilherme's profileGuilherme de Carvalho Ca...PhotosBlogListsMore ![]() | Help |
|
September 09 Apenas para descontrair (Mudei de Lado).MUDEI DE LADO . . . Resolvi ficar ao lado de Lula ... Se eu ficar atrás... Ele me caga. ENTÃO, PENSANDO BEM, CONCLUI QUE QUANDO TUDO VOLTAR AO NORMAL... Será o dia em que: - GENUÍNO será algo verdadeiro; Agora, quando olho meu titulo de eleitor, entendo o verdadeiro significado do nome 'ZONA ELEITORAL' ! September 06 AutoComplete com jQuery e asp.netO objetivo deste post não é determinar qual a melhor abordagem a ser adotada no desenvolvimento de um componente de autocompletar nas aplicações asp.net, mas mostrar uma alternativa ao AutoComplet do Toolkit.
Vamos utilizar o jQuery[1], framework para desenvolvimento com JavaScript e AJAX, fazendo o download do arquivo [2], podemos colocá-lo dentro de uma pasta js na nossa aplicação. Após isto poderemos referenciar o framework na nossa webform, onde queremos implentar tal solução. Por ser um arquivo js basta colocarmos no head do nosso webform o link para o arquivo assim:
<asp:ScriptReference Path="~/jQuery/jquery-1.3.2.js" /> Você pode estar achando estranho a forma com que referenciei o arquivo, mas como estou usando MasterPage, é necessário que a referencia ao arquivo siga este padrão. Esta referência deve ser feita no arquivo da MasterPage. Agora podemos ir para a parte de criação da aplicação que irá fazer a busca no banco de dados para trazer os dados do banco e disponibilizá-los para o componente onde queremos implementar a função de autocomplete, que no nosso caso será um TextBox. Não iremos utilizar um webservice, pois com o uso do jQuery podemos criar esta funcionalidade com uma simples página aspx, bastando para isto criar a função no evento page_load, como mostrado abaixo. Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
Response.Expires = -1
Response.ContentType = "text/plain"
Dim txtResposta As New Text.StringBuilder
Dim Dr As Npgsql.NpgsqlDataReader
Dim conPgsql As New NpgsqlConnection(PgConexao.ToString)
Dim comPgsql As New NpgsqlCommand
Dim usuarioLogado As Integer = Request.Cookies("UserID").Value
Try
comPgsql.Connection = conPgsql
conPgsql.Open()
With comPgsql
.CommandType = Data.CommandType.Text
.CommandText = "SELECT CAST(proc.numero AS TEXT) FROM advogaweb.processo proc INNER JOIN advogaweb.advogado_processo advpr ON proc.idprocesso = advpr.fkprocesso WHERE proc.situacao=0 AND advpr.fkadvogado = CAST(:s1 AS Integer)"
.Parameters.Add(New NpgsqlParameter("s1", NpgsqlDbType.Text))
.Parameters(0).Value = usuarioLogado
Dr = .ExecuteReader()
End With
If Dr.HasRows Then
While Dr.Read
txtResposta.Append(Dr(0).ToString)
txtResposta.Append(" ")
End While
txtResposta.Remove(txtResposta.Length - 1, 1)
End If
Catch exPgsql As NpgsqlException
conPgsql.Close()
Catch ex As Exception
conPgsql.Close()
Finally
conPgsql.Close()
End Try
Response.Write(txtResposta.ToString())
Response.End()
End Sub
A função é auto explicativa, bastando prestar atenção em alguns detalhes, como o tipo do retorno que deve ser uma string e tem que ser retornada pelo response.write. Outro ponto que devemos ter atenção é nas primeiras linhas. Response.Expires = -1 Neste caso foi criada uma função para poder aproveitar o máximo a reusabilidade. (function($) {
$.getProcessosAutocomplete = function() {
$.ajax({
url: "../admsistema/jQuery.aspx",
async: false,
success: function(data){
var processos = data.split(" ");
$('.inputProcesso').autocomplete(processos,
{
width:180, highlight: false, multiple: false, scroll: true, scrollHeight: 300, autoFill:true
}
);
}
});
}
})(jQuery);
O segundo parâmetro serve apenas para configurar a exibição do autocomplete, e tais configurações podem ser consultadas na página do autocomplete. |
|
|