¡Fernando Cortés Hierro! MCSD

Experimentando con el usuario

Recent posts

Tags

Categories

Navigation

Pages

    Archive

    Blogroll

    Disclaimer

    The opinions expressed herein are my own personal opinions and do not represent my employer's view in anyway.

    Las Cosas Claras: Llamar funciones javascript desde Silverlight

    Hoy veremos algo que nos puede resultar muy útil en nuestras aplicaciones Silverlight. Estamos hablando de la posibilidad de acceder al DOM (Document Object Model) del navegador para llamar a una función javascript que hará lo que queramos en el cliente.

    Para ello necesitamos en primer lugar usar el siguiente Namespace:

    using System.Windows.Browser;

    En este namespace disponemos de la clase HtmlPage que será la que nos permita tener el acceso necesario al DOM del navegador.

    Para este post he montado en un momentillo un ejemplo muy fácil. Son dos botones y una caja de texto. El primer botón llama a una función que muestra un alert con un mensaje predefinido en el cliente y el segundo botón muestra un alert con el texto del TextBox como mensaje. Algo sencillo pero que muestra lo más básico que podemos hacer: Llamar a una función con y sin parámetros.

    Sltobrowser

    En el código fuente podemos ver como utilizando el método GetProperty al que se le pasa el nombre de la función javascript, obtenemos un objeto de tipo ScriptObject. Este tipo de objeto dispone del método InvokeSelf que se encarga de hacer la llamada a la función en cuestión. Este método recibirá los parámetros que le serán pasados a la función javascript.

    private void bttLaunch_Click(object sender, RoutedEventArgs e)
    {
        ScriptObject scriptMethod = (ScriptObject)HtmlPage.Window.GetProperty("MostrarAlerta");
        scriptMethod.InvokeSelf();
    }
    
    private void bttLaunch2_Click(object sender, RoutedEventArgs e)
    {
        ScriptObject scriptMethod = (ScriptObject)HtmlPage.Window.GetProperty("MostrarAlerta2");
        scriptMethod.InvokeSelf(txtMessage.Text);
    }

    Un muestra del resultado por ejemplo al pulsar el segundo botón seria el siguiente:

    Capture

    En el siguiente post de esta serie veremos como hacer lo contrario. Llamar desde el cliente, el navegador, a un función del Silverlight.



    Posted: Jun 26 2008, 12:29 by Fernando | Comments (0) RSS comment feed |
    • Currently 5/5 Stars.
    • 1
    • 2
    • 3
    • 4
    • 5
    Filed under: ASP.NET | Silverlight

    Related posts

    Add comment


    (Will show your Gravatar icon)  

      Country flag

    [b][/b] - [i][/i] - [u][/u]- [quote][/quote]



    Live preview

    said:

    # December 01 2008, 11:22