TRABALHANDO COM JQUERY COM ASPNET -  UTILIZANDO O PLUG LIGHTBOX E CRIANDO POPUP COM THICKBOX

 

 

Aproveitando o artigo do Djonatas Tenfen, de 09/2009, o qual aborda os primeiros passos com JQuery e ASPNet, irei  demonstar  o plugin LightBox JQuery, que faz alguns efeitos bacanas em imagens. Vale ressaltar que existe um framework chamado LightBox 2 que é independente do JQuery  e  praticamente tem a mesma funcionalidade, entretanto, na minha opinião,  o Lighbox traz um efeito mais interessante e é mais fácil de configurar.

Crie um novo WebSite no Visual Studio. Chame-o de  JqueryLightBox.

Vamos fazer o download no site  http://leandrovieira.com/projects/jquery/lightbox/

 


Imagem 1 - Site

Clique em Get new version para obter a nova versão. Descompacte no diretório do seu projeto. Observe no arquivo descompactado o CSS, pois dará todo efeito no elemento div, que é usado para agrupar um ou mais elementos nível de bloco. Contém também  as imagens dos botões, os arquivos  JS e as fotos. Em soluction Explorer, clique em css e clique no arquivo. O mesmo será responsável pelo layout.(imagem 2)

 


Imagem 2( Folha de estilo encadeada -CSS)

 

Vamos criar um novo web form. Em soluction Explorer, no path do projeto com botão direito do mouse, selecione add new item. Selecione o objeto web form e chame-o de ListBox.aspx.(Imagem3)

Imagem 3

 

Em source logo acima da tag  <html...  vamos vincular o JQuery, o lightbox.(Listagem 1)

<script type ="text/jscript" src ="jquery-1.3.2.min.js"></script>
<script type ="text/jscript" src ="js/jquery.lightbox-0.5.js"></script>

Listagem 1

 

Precisamos informar em qual elemento estaremos aplicando o efeito do lightbox. Crie um outro script conforme listagem abaixo.(listagem 2)

 

<script type ="text/jscript">
    $(document).ready(function()
    {
      $("#galeria a").lightBox();
    });
</script>

Listagem 2(método para aplicar o efeito do lightbox)

O elemento galeria sera nosso div que conterão as fotos e o “a” representa o link de cada foto, isso mesmo, cada foto terá um link para sua ampliação.

Logo abaixo da tag <title.. vamos adicionar o css. É só clicar no pasta css e arrastar o arquivo para o local desejado .(Listagem 3)

<link href="css/jquery.lightbox-0.5.css" rel="stylesheet" type="text/css" />
Listagem 3( Css)

 

Adicione um id para o div(listagem 4)

<div id="galeria">

Listagem 4( identificando a div)

 

Vamos incrementar um estilo para a div galeria listagem 5.

<style type="text/css">
 #galeria
 {
  width:500px;
  height:300px;
  background-color:#C0C0C0;
  margin : auto;
 }

Listagem 5

Observe que estamos alterando algumas propriedades da div galeria, tais como altura, largura , cor de fundo e a margem que foi centralizada.

Nosso script completo ficaram assim (Listagem 5):

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="ListBoxaspx.aspx.cs" Inherits="ListBoxaspx" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<script type ="text/jscript" src ="jquery-1.3.2.min.js"></script>
<script type ="text/jscript" src ="js/jquery.lightbox-0.5.js"></script>
<script type ="text/jscript">
    $(document).ready(function()
    {
      $("#galeria a").lightBox();
    });
</script><html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title>Untitled Page</title>
    <link href="css/jquery.lightbox-0.5.css" rel="stylesheet" type="text/css" />
</head>
<body>
    <form id="form1" runat="server">
    <div id="galeria">
   
    </div>
    </form>
</body>
</html>
Listagem 5(script completo)

No nosso webform adicionei 5 hiperlinks na região do nosso div

Tenho 5 imagens e 5 miniaturas para as mesmas(thumbnail).
Para cada hiperlink na propriedade navigateurl, linkei com as fotos de imagens normais e linkei com a miniatura correspondente.

Só executar e verificar esse magnífico efeito que o plugin lightbox proporciona.
Veja o projeto em funcionamento( Imagem 4)

 


Imagem 4 – Imagens

 

Agora é só selecionar a imagem para carregar a sua correspondente(Imagem 5)

 


Imagem 5 – Imagem carregada

Finalizamos a primeira parte que é a manipulação de imagens. Vamos agora utilizar o TickBox com Jquery  que substitui o ModalPopUpContainer do AjaxToolkit.

Vamos  precisar  fazer o download do script do Thickbox e neste exemplo irei utilizar o código css fornecedido no site do Thickbox: http://jquery.com/demo/thickbox/.

Faça o download do thickbox-compressed.js.  Salve na pasta  js do seu projeto.

Existe um link que abre um arquivo txt, chamado e ThickBox.css .Salve na pasta  css do seu projeto com a extensão  .css.

Criem dois webforms, um chamado TickBox .aspx e outro chamado Modal.aspx

No TickBox.aspx ,em source, após a tag Title do seu formulário adicione as referências aos scripts. Adicionam primeiro o CSS, depois o script do Jquery e por último o script do ThickBox.

Observe a listagem 6

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="TickBox.aspx.cs" Inherits="TickBox" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title>Untitled Page</title>
    <link href="css/thickbox.css" rel="stylesheet" type="text/css" />
    <script type ="text/jscript" src ="jquery-1.3.2.min.js"></script> 
    <script type ="text/jscript" src ="thickbox-compressed.js"></script>  
  
</head>
<body>
    <form id="form1" runat="server">
    <div>
   
    </div>
    </form>
</body>
</html

Listagem  6

 

Se você quiser abrir uma página com um link html basta adicionar a tag class especifica do ThickBox que já irá funcionar (Listagem 7)

<form id="form1" runat="server">
    <div>
      <a href="Modal.aspx?width=200&height=200" class="thickbox"">  
             Abrir Janela Modal  
      </a>  
    </div>
    </form>

Listagem 7

 

Adicione um  ScriptManager, um UpdatePanel e um botão no nosso formulário. E vamos fazer uma chama para uma janela modal no Evento do botão (Listagem 8)

protected void Button1_Click(object sender, EventArgs e)
    {
      string script = "tb_show('','Modal.aspx?height=420&width=550','');";  
      ScriptManager.RegisterClientScriptBlock(UpdatePanel1, this.GetType(), "janela", script, true);  
    }

Listagem 8

Com o código acima será aberto formulário WebForm1 em uma janela modal de 320px de Height por 450px de Width. Nessas duas linhas de código escrevi o  JavaScript que chama a janela e logo em seguida registra o mesmo  no UpdatePanel . É importante que registre seu código JavaScript para que  quando ocorra um PostBack  em  seu formulário o UpdatePanel mantenha a referência dos Scripts adicionados.

Veja o efeito final(Imagem 6)

Imagem 6

 

Vimos a utilização do poderoso JQuery com LightBox  que cria um efeito incrível em imagens e vimos também a criação de um formulário modal utilizando o Thicket  com JQuery. Sem dúvidas o maravilhoso JQuery  podemos criar aplicaçãoes ricas para internet (RIA) sem perder performance.

Até a próxima!

Sobre o Autor

Luís Alexandre de Oliveira técnologo em Processamento de Dados ,graduado pela Faculdade de Técnologia de Sorocaba, Consultor técnico do The Club. Docente do curso técnico informática - Etec de Avaré e do curso Tecnologia em Redes de Computadores - Fatec Eduvale – Avaré

E-mail: suporte@theclub.com.br

The Club - O Maior Clube de programadores do Brasil