none
forma correta de utilizar ScriptManager.RegisterClientScriptBlock RRS feed

  • Pergunta

  • Pessoa;

    Estou com uma duvida no que diz respeito ao funcionamento do método ScriptManager.RegisterClientScriptBlock

    Eu tenho um script simples que exibi um alert na tela dizendo qualquer coisa.

    quando eu uso uma tag <script>runat="server">

    e declaro o script dentro dela, usando o ScriptManager.RegisterClientScriptBlock, funciona corretamente, porem quando eu tento fazer isto server-side não funciona!

    O código abaixo está executando corretamente, quando eu clico no botão que possui o ID="botaoQueFunciona"

    o alerta executa corretamente, porem o botão com o ID="botaoQueNaoFunciona"

    o script não é executado! Mesmo eu tendo o script declaro no server side. Segue meu código abaixo:

    Código C#:

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Web;
    using System.Web.UI;
    using System.Web.UI.WebControls;
     
    namespace Aprender
    {
        public partial class Teste : System.Web.UI.Page
        {
            protected void Page_Load(object senderEventArgs e)
            {
            }
     
     
            protected void Page_PreRender(object senderEventArgs e)
            {
                string scriptDois = @"
                    function Alerta()
                      {
                       alert('eu');
                      }
                    ";
     
                ScriptManager.RegisterClientScriptBlock(
                   this,
                   this.GetType(),
                   "ScriptDois",
                   scriptDois,
                   true);
            }
     
        }
    }

    Código asp:

    <%@ Page Language="C#" %>
     
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" 
     "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
     
    <script runat="server">
        protected void Page_PreRender(object senderEventArgs e)
        {
            string scriptDois = @"
                    function Alerta()
                      {
                       alert('eu');
                      }
                    ";
     
            ScriptManager.RegisterStartupScript(
               this,
               this.GetType(),
               "ScriptDois",
               scriptDois,
               true);
        }
    </script>
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head id="Head1" runat="server">
        <title>ScriptManager RegisterClientScriptInclude</title>
    </head>
    <body>
        <form id="Form1" runat="server">
            <div>
                <br />
                <asp:ScriptManager ID="ScriptManager1"
                    EnablePartialRendering="true"
                    runat="server">
                </asp:ScriptManager>
                <asp:UpdatePanel ID="UpdatePanel1"
                    UpdateMode="Conditional"
                    runat="server">
                    <ContentTemplate>              
                        <asp:Button ID="botaoQueFunciona" Text="Clique me" OnClientClick="Alerta()" runat="server" />
                        <asp:Button ID="botaoQueNaoFunciona" Text="Clique me server" runat="server" />
                    </ContentTemplate>
                </asp:UpdatePanel>
            </div>
        </form>
    </body>
    </html>
    

    iptBlock

    sábado, 3 de agosto de 2013 23:13

Todas as Respostas

  • Coloque o script dentro de um js file, e faça a referencia desse files dentro do scriptmanager

    Não esqueça de usar o componente </> na barra para posta seu código. Microsoft MCPD,MCTS,MCC

    • Sugerido como Resposta Alysson Queiroz terça-feira, 6 de agosto de 2013 12:26
    segunda-feira, 5 de agosto de 2013 15:44
    Moderador