none
Llamar a funcion javascript en el Page_load RRS feed

  • Pregunta

  • Hola, tengo una masterPage (la cual en el Head tiene una funcion javascript) y quiero que al cargar una determinada pagina me muestre un popup.
    He buscado y lo único que encontré es llamarla en el evento click de un boton (no me sirve porque debe salir al cargar la pagina sin hacer click) y en el body onload (tampoco me sirve porque el body está en la master y mostraria el popup siempre...)

    Como puedo llamar a una funcion Javascript desde el load....
    He probado esto pero nada:
    Me.Page.ClientScript.RegisterClientScriptBlock(Pag e.GetType(), "key", "<script>aqui colocas tu scrip</script>")
    Me.ClientScript.RegisterClientScriptResource(Page. GetType(), "<script>aqui colocas tu scrip</script>") '
    Me.Page.ClientScript.RegisterStartupScript(Page.Ge tType(), "key", "<script>aqui colocas tu scrip</script>")

    Gracias por vuestra ayuda, un saludo.

    piskui
    lunes, 27 de abril de 2009 23:01

Respuestas

  • Un ejemplo sencillo:

        protected void Page_Load(object sender, EventArgs e)
        {
            string key = "popup";
            string javascript = "alert('Esto es un Popup generado desde Code Behind');";
    
            if (!Page.ClientScript.IsStartupScriptRegistered(key))
            {
                Page.ClientScript.RegisterStartupScript(Page.GetType(), key, javascript, true);
            }
        }
    En el caso de querer abrir un aventana popup:

        <SCRIPT language="javascript" type="text/javascript">
    
            function ShowGooglePopup() {
                window.open("http://www.google.com", "Google");
            }
    
        </SCRIPT>
        protected void Page_Load(object sender, EventArgs e)
        {
            string key = "popup";
            string javascript = "ShowGooglePopup();";
    
            if (!Page.ClientScript.IsStartupScriptRegistered(key))
            {
                Page.ClientScript.RegisterStartupScript(Page.GetType(), key, javascript, true);
            }
        }
    

    http://geeks.ms/blogs/lruiz - MADNUG Member - Spenta Consulting .: MCP -MCTS :.
    • Marcado como respuesta piskui jueves, 30 de abril de 2009 8:18
    miércoles, 29 de abril de 2009 9:56
    Moderador

Todas las respuestas

  • hola,

    Se me ocurre que si en el masterpage tienes una funcion de javascript que quiere ejecutar, por ejemplo:

    <script language="JavaScript">

    function showPopUp()
    {
    }

    </script>


    Podrias invocarla agregando algo como esto:


    If (Not Me.IsStartupScriptRegistered("showPopUp")) Then

        Me.Page.ClientScript.RegisterStartupScript("showPopUp", "<script> showPopUp(); </script>")

    End If


    Como veras la funcion seria ejecutada, ya que estas colcando la linea que llamada al metodo.
    Lo unico malo con esto es que si refrescas la pagina, se volvera a ejecutar esta seccion de script.

    Estuve viendo tambien que los metodos RegisterStartupScript (), y el resto esta marcados como obsoletos.
    Segun vi si haces uso de alguna version nueva del .net deberias utilizar el ClientScriptManager.RegisterStartupScript


    Saludos

    Leandro Tuttini
    martes, 28 de abril de 2009 1:35
  • Hola, gracias por la respuesta,  pero ese método no lo reconoce, además de decirme lo que a  ti que está obsoleto, probé con el otro metodo y no lo conseguí

    Pero como se podia hacer ocn un boton, he asignado la llamada al javascript a un Imgboton con el siguiente codigo:

    imgBCerrarPopUp.Attributes.Add(

    "onclick", "javascript:autoclose();")

    Y luego he intentado llamar al evento click del boton, asi:
    imgBCerrarPopUp_Click(sender, e)

    Pero me salta un error, "No se puede convertir un objeto de tipo 'System.EventArgs' al tipo 'System.Web.UI.ImageClickEventArgs'."

     Supongo que es por el 'e' , pero esa llamada si es un boton funciona, pero para un imagebutton no, como debo llamar al evento click del image button??

     

    gracias.

     


    piskui
    miércoles, 29 de abril de 2009 7:38
  • Un ejemplo sencillo:

        protected void Page_Load(object sender, EventArgs e)
        {
            string key = "popup";
            string javascript = "alert('Esto es un Popup generado desde Code Behind');";
    
            if (!Page.ClientScript.IsStartupScriptRegistered(key))
            {
                Page.ClientScript.RegisterStartupScript(Page.GetType(), key, javascript, true);
            }
        }
    En el caso de querer abrir un aventana popup:

        <SCRIPT language="javascript" type="text/javascript">
    
            function ShowGooglePopup() {
                window.open("http://www.google.com", "Google");
            }
    
        </SCRIPT>
        protected void Page_Load(object sender, EventArgs e)
        {
            string key = "popup";
            string javascript = "ShowGooglePopup();";
    
            if (!Page.ClientScript.IsStartupScriptRegistered(key))
            {
                Page.ClientScript.RegisterStartupScript(Page.GetType(), key, javascript, true);
            }
        }
    

    http://geeks.ms/blogs/lruiz - MADNUG Member - Spenta Consulting .: MCP -MCTS :.
    • Marcado como respuesta piskui jueves, 30 de abril de 2009 8:18
    miércoles, 29 de abril de 2009 9:56
    Moderador
  •   Gracias, usando  Page.ClientScript.RegisterStartupScript(Page.GetType(), key, javascript, true); si me hace el javascript.

    Quisiera saber, por curiosidad lo que comentaba sobre como llamar al evento click de un imagebutton, ya que para un botnon con (sender,e) funciona paro para un imagebutton no, y en algunos casos me serviría de ayuda, sabes cmo hacerlo ??

    gracias por tu aporte, un saludo.
    piskui
    jueves, 30 de abril de 2009 8:19