none
Ayuda con silverlight y ASP.NET RRS feed

  • Pregunta

  • Hola! Mi problema es el siguiente y disculpen si me equivoco de foro pero estoy trabajando con silverlight y asp, mi pregunta es si diseño un boton en silverlight al momento de integrarla con asp que instruccion debo usar en mi boton de silverlight para mandar llamar un formulario web de mi proyecto??

    les agradezco mucho!


    Luis

    miércoles, 18 de abril de 2012 5:53

Respuestas

  • Hola Luis,

    Existe una forma de poder comunicar entre una página web y silverlight  y viceversa. Para ello se usa el comando HtmlPage.WindowInvoke(...).

    Por ejemplo, en mi página web pongo este javascript:

    <script type="text/javascript"> 
            function HablarAJavascript(msg)
            {
                alert("He recibido de Silverlight: " + msg);            
            }    
    </script>


    En mi code-behind de silvelight podría escribir esta línea para llamar a la función de javascript:

    HtmlPage.Window.Invoke("HablarAJavascript", "Hola desde mi aplicación silverlight");


    Y si te preguntas como hacerlo a la inversa, también podríamos crear una función en silverlight que pudiera ser llamada desde javascript. Basta con decorarla con ScriptableMember:

    [ScriptableMember]
    public void HablarASilverlight(string nombre)
    {
       txtNombre.Text = nombre;
    }

    Recordando en el constructor avisar al sistema para que registre estás llamadas:

    public partial class Page : UserControl
    {
       public Page()
       {
          InitializeComponent();
          HtmlPage.RegisterScriptableObject("Page", this);            
       }
    
       [ScriptableMember]
       public void HablarASilverlight(string nombre)
       {
          txtNombre.Text = nombre;
       }
    }

    Entonces de nuevo en nuestra página web podríamos llamar a la función de silverlight:

    <script type="text/javascript">
    function enviarHolaASilverlight()
    {
       var control = document.getElementById("silverlightControl");            
       control.Content.Page.UpdateText("Hola desde Javascript");  
    }
    </script>

    Un saludo,


    Fernanando Escolar - http://www.programandonet.com/ - @fernandoescolar

    • Marcado como respuesta lfmluis jueves, 19 de abril de 2012 18:18
    miércoles, 18 de abril de 2012 15:56

Todas las respuestas

  • Hola Luis,

    Existe una forma de poder comunicar entre una página web y silverlight  y viceversa. Para ello se usa el comando HtmlPage.WindowInvoke(...).

    Por ejemplo, en mi página web pongo este javascript:

    <script type="text/javascript"> 
            function HablarAJavascript(msg)
            {
                alert("He recibido de Silverlight: " + msg);            
            }    
    </script>


    En mi code-behind de silvelight podría escribir esta línea para llamar a la función de javascript:

    HtmlPage.Window.Invoke("HablarAJavascript", "Hola desde mi aplicación silverlight");


    Y si te preguntas como hacerlo a la inversa, también podríamos crear una función en silverlight que pudiera ser llamada desde javascript. Basta con decorarla con ScriptableMember:

    [ScriptableMember]
    public void HablarASilverlight(string nombre)
    {
       txtNombre.Text = nombre;
    }

    Recordando en el constructor avisar al sistema para que registre estás llamadas:

    public partial class Page : UserControl
    {
       public Page()
       {
          InitializeComponent();
          HtmlPage.RegisterScriptableObject("Page", this);            
       }
    
       [ScriptableMember]
       public void HablarASilverlight(string nombre)
       {
          txtNombre.Text = nombre;
       }
    }

    Entonces de nuevo en nuestra página web podríamos llamar a la función de silverlight:

    <script type="text/javascript">
    function enviarHolaASilverlight()
    {
       var control = document.getElementById("silverlightControl");            
       control.Content.Page.UpdateText("Hola desde Javascript");  
    }
    </script>

    Un saludo,


    Fernanando Escolar - http://www.programandonet.com/ - @fernandoescolar

    • Marcado como respuesta lfmluis jueves, 19 de abril de 2012 18:18
    miércoles, 18 de abril de 2012 15:56
  • Hola muchas gracias! me funciono! :D

    Luis

    jueves, 19 de abril de 2012 18:18
  • En el formulario <action="otroformulario.aspx">

    o

    Code behind

    '**** buton stilo Web control *****
    Private Sub Boton1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Boton1.Click
        Response.Redirect("mipagina.aspx")
    End Sub
    ----------------------------------------------------------------------------------------------------------------------------

    Si le pones <action="otroformulario.aspx"> se te va a ir al otro formulario con cualquier postback que haga tu pagina, no solo cuando hagas click sobre el boton. Si utilizas Response.Redirect("mipagina.aspx") te abre la nueva pagina pero tienes que persistir todas tus variables de forma manual. Si utilizas Server.Transfer("mipagina.aspx") entonces mantendras todo el contexto http y podras acceder a mas informacion, pero es un poco mas complicado.

    ------------------------------------------------------------------------------------------------------------------------------------------------------------------------

    En el evento clik pones
    Response.Redirect("URL")
    o bien si está en el mismo server y es una aspx con
    Server.Trasnfer("nombreweb")
     


    Stanley Subi

    domingo, 6 de mayo de 2012 1:20