Hoje gostaria de falar e mostrar como funciona a junção do javascript, linguagem C#.NET e plataforma ASP.NET com Toolkit. Com o toolkit da Microsoft, alguns comandos como <script>alert(“aaa”);</script> dentro do código c# deixaram de funcionar.

Tag: Visual Studio 2010, Linguagem C#.NET, Plataforma ASP.NET.

 O importante aqui Ă© fazer funcionar o clique do botĂŁo para abrir uma tela modal, aquela que o usuário nĂŁo consegue selecionar a tela de trás enquanto nĂŁo fechar a primeira janela.

 Como a plataforma Ă© do tipo ASP.NET, ou seja, web Ă© necessário fazer a junção de javascript e mĂ©todo c#.net. Dentro da tela .ASPX ou do arquivo .MASTER Ă© necessário usar a função janelaModal. (Code 1)

 

<script type="text/javascript" language="javascript">

    function janelaModal(url, nome, nrTamanho, nrLargura)

    {

        eval(window.showModalDialog(url, nome,'Resizable:no;DialogHeight:'+nrTamanho+'px; DialogWidth:'+nrLargura+'px; Edge:raised; Help:no; Scroll:no, Status:no; Center:yes;'));

    }

</script>

 


Code 1

 Note que o cĂłdigo javascript nĂŁo Ă© um bicho de sete cabeças. É necessário enviar o endereço da URL (pode ser apenas o nome da página ou se estiver dentro de uma pasta indique-a adicionando a barra e a página .aspx). É necessário enviar tambĂ©m o nome da tela, tamanho e largura.

 Dentro da função, foi utilizado o comando showModalDialog definindo todos os parâmetros como nome, tamanho e largura. Podem ser definidos outros tipos como help, scroll, status e center; isso vai do seu critĂ©rio.

 O prĂłximo passo Ă© gerar o botĂŁo na tela e acionar o clique que tem responsabilidade de chamar a função javascript (Code 1).
 
BotĂŁo Vermelho ou Verde


Imagem 1

 Note que na imagem 1, existem dois botões do tipo imagem. O nome tĂ©cnico Ă© IMAGE_BUTTON (um componente do prĂłprio framework da Microsoft).  Code 2.

 

<asp:ImageButton ID="imgButtonTela1" runat="server"

                        onclick="imgButtonTela1_Click" />

 


Code 2

 Como na minha lĂłgica de programação existe a possibilidade de ser uma bolinha verde ou vermelha, nĂŁo coloquei o endereço da imagem ainda. Essa parte Ă© feita no momento de execução. (Code 3)

 

        protected void Page_Load(object sender, EventArgs e)

        {

            if (!Page.IsPostBack)

            {

                verificaDados();

            }

        }

 

        private void verificaDados()

        {

            bool _botaoVermelho = false;

 

            logica();

 

            if (_botaoVermelho)

                imgButtonTela1.ImageUrl = "Sinais/botaovermelho.png";

            else

                imgButtonTela1.ImageUrl = "Sinais/botaoverde.png";

        }

 


Code 3

 No Load da página, chamo outro mĂ©todo que verifica os dados para mostrar a imagem vermelha ou verde. Lembrando que nĂŁo mostrei a parte click do botĂŁo ainda, essa parte (code3)  funciona apenas para mostrar a cor do botĂŁo.


Button Click


 A parte do clique do botĂŁo Ă© simples e fácil. A ferramenta gera o mĂ©todo de clique e agora basta colocar uma linha utilizando o scriptManager. (Code 4)

 

protected void imgButtonTela1_Click(object sender, ImageClickEventArgs e)

        {

            ScriptManager.RegisterClientScriptBlock(this, this.GetType(), "NomedaJanela", "janelaModal('pagina.aspx','Sua','680','1020')", true);

        }

 


Code 4

 O ScriptManager.RegisterClientScriptBlock funciona mesmo que esteja utilizando o Toolkit da Microsoft, isto Ă©, mesmo que tenha todos aqueles componentes da dll AjaxControlToolkit funciona. Explico isso porque os comandos <script> dentro do cĂłdigo c#.net deixaram de funcionar quando se usa o AjaxToolkit.

 O comando dentro do mĂ©todo chama a função criada anteriormente (Code 1) “janelaModal” passando os parâmetros esperados pelo mĂ©todo.
 Como eu gosto de mostrar o resultado final de todo trabalho feito atĂ© agora, segue uma imagem. (Imagem 2). Eu nĂŁo posso mostrar o que tem na tela, mas posso mostrar que a tela abriu de forma modal.