Caro(a) Leitor(a), hoje vou falar como colocar um PopUp  em destaque no site sem precisar retirar o bloqueador. Antigamente existiam os PopUp’s febres em portais como UOL, Terra, AOL e outros. 

Devido a febre e com eles problemas com vírus, foram criados os bloqueadores de PopPup, que evita a abertura de telas não autorizadas. Hoje vou falar e mostrar como abrir uma tela dentro do seu site como se fosse PopPup. O melhor de tudo é que o bloqueador pode estar ativado.

O funcionamento é simples, o PopUp fica em destaque no site e some apenas depois de clicado no botão. O site que fica atrás do PopUp meio visível com o comando Opacity. Veja o resultado final na figura 1.



Figura 1. Resultado final com Popup em destaque

Note que o PopUp apareceu com destaque na tela e o site apareceu meio transparente. O destaque foi realmente no PopUp. Neste caso, acabei usando componentes e CSS para deixar o fundo meio apagado. Esse fundo pode ser colocado qualquer cor.

Primeiro passo

O primeiro passo é criar um Panel do ASP.NET com a propriedade Style display none. Tudo que você quiser mostrar no PopUp coloca dentro do Panel criado. Listagem 1.

Listagem 1: Panel simples
[CODE]
<asp:Panel ID="pnlPopUp" Style="display:none;" runat="server">
<div>
<br /><br /><br /><h2>Novo popup</h2><br /><br /><br />
</div>
</asp:Panel>
[/CODE]
Você pode colocar banner rotativo, include com arquivo ascx e até vídeo.

Segundo Passo
O segundo passo é criar um label simples com o nome de Id. Listagem 2.

Listagem 2: Criando label simples
[CODE]
<asp:Label ID="lblTeste" runat="server"></asp:Label>
[/CODE]

Terceiro Passo

No terceiro passo, vamos criar os métodos CSS responsáveis pelo visual do PopUp deixando o fundo meio opaco. Dentro do arquivo CSS coloque dois métodos: modalBackground e modalPopUp. Não esqueça do (ponto) antes do nome. Listagem 3.

Listagem 3: Métodos CSS
[CODE]
.modalBackground
{
    background-color: #999;
    filter: alpha(opacity-]=70);
    opacity:0.7;
}
.modalPopUp
{
    background-color: #fff;
    border-width: 3px;
    border-style: solid;
    border-color: gray;
    padding: 3px;
    width: 250px;
}
[/CODE]

Depois de criar os métodos, vamos passar para o componente ModalPopUpExtender.

Quarto Passo

O Modal funciona através do componente AJAX instalado. Em artigos anteriores, informei como colocar o componente dentro do Visual Studio 11. É simples e fácil, para baixar basta acessar o endereço www.asp.net/ajax. Listagem 4.

Listagem 4: ModalPopupExtender
[CODE]
<asp:ModalPopupExtender ID="ModalPopupExtender1" runat="server"
        BackgroundCssClass="modalBackground"
        CancelControlID="cmdFechar" DropShadow="true"
        PopupControlID="pnlPopUp" PopupDragHandleControlID="panel3"
        TargetControlID="lblTeste">
    </asp:ModalPopupExtender>
[/CODE]

Note que no modal existe a propriedade BackugroundCSSClass com o valor criado no CSS. O TargetControlID possui o nome do Label e o PopupControlID possui o nome do panel responsável por exibir o conteúdo.

Existe também o botão responsável por fechar o PopUp, pelo contrário o mesmo não fecha rolando a página ou clicando fora. Esse botão precisa ser criado dentro do Panel. Já que vamos mudar o Panel, vou acrescentar mais um atributo chamado CSSClass, além do botão.

Listagem 5: Alterando o Panel.
[CODE]
<asp:Panel CssClass="modalPopUp" ID="pnlPopUp" Style="display:none;" runat="server">
        <div>
            <asp:Button ID="cmdFechar" Text="X" runat="server" />
            <br /><br /><br /><h2>Novo popup</h2><br /><br /><br />
        </div>
</asp:Panel>
[/CODE]

Na parte da linguagem de programação, basta chamar o nome do objeto e usar o método Show().  Esse método pode ser acionado em qualquer parte do código ou do projeto.

Listagem 6: Chamando o método Show().
[CODE]
        protected void Page_Load(object sender, EventArgs e)
        {
            ModalPopupExtender1.Show();
        }
[/CODE]

Bom, esses são todos os passos necessários para criar um popup em seu site ou aplicação com destaque. Lembre-se que a tela não vai sair enquanto não clicar no botão fechar localizado dentro do Panel.

O resultado de todo código foi mostrado no início do artigo e para não ter confusão, segue todo o código da página na listagem 7.
Listagem 7: Todo o código da página ASPX.

[CODE]
<%@ Register Assembly="AjaxControlToolkit" Namespace="AjaxControlToolkit" TagPrefix="asp" %>

<asp:Content ID="Content1" ContentPlaceHolderID="HeadContent" runat="server">
</asp:Content>
<asp:Content ID="Content2" ContentPlaceHolderID="FeaturedContent" runat="server">
</asp:Content>
<asp:Content ID="Content3" ContentPlaceHolderID="MainContent" runat="server">
    
    <br /><br /><br /><br />
    Fazendo um teste no meu site 
    <br /><br /><br />
    com PopUp<br />
    

    <asp:Label ID="lblTeste" runat="server"></asp:Label>

    <asp:Panel CssClass="modalPopUp" ID="pnlPopUp" Style="display:none;" runat="server">
        <div>
            <asp:Button ID="cmdFechar" Text="X" runat="server" />
            <br /><br /><br /><h2>Novo popup</h2><br /><br /><br />
        </div>
    </asp:Panel>

    <asp:ModalPopupExtender ID="ModalPopupExtender1" runat="server"
        BackgroundCssClass="modalBackground"
        CancelControlID="cmdFechar" DropShadow="true"
        PopupControlID="pnlPopUp" PopupDragHandleControlID="panel3"
        TargetControlID="lblTeste">
    </asp:ModalPopupExtender>

</asp:Content>
[/CODE]

Fico por aqui e qualquer dúvida pode entrar em contato pelo site pessoal www.mauriciojunior.org