Comentarios en: Llamar a funciones de JavaScript desde Silverlight y a métodos de Silverlight desde JavaScript https://www.programandoamedianoche.com/2009/01/llamar-a-funciones-javascript-desde-silverlight-y-a-silverlight-desde-javascript/ El blog de Scientia® Soluciones Informáticas Tue, 15 Sep 2020 16:26:19 +0000 hourly 1 Por: Gustavo Cantero (The Wolf) https://www.programandoamedianoche.com/2009/01/llamar-a-funciones-javascript-desde-silverlight-y-a-silverlight-desde-javascript/#comment-104 Mon, 30 Nov 2009 15:32:45 +0000 http://www.programandoamedianoche.com/?p=235#comment-104 En respuesta a Imaz.

Me alegro que haya funcionado. Cabe mencionar que en Silverlight 4 (cuya primer beta fue liberada hace unos días) existe el control WebBrowser que crea un navegador dentro del XAML, algo parecido a lo que estás haciendo con el control HtmlHost y la etiqueta IFRAME.
Si deseas más información sobre Silverlight 4, en este artículo tienes varios enlaces interesantes: http://www.programandoamedianoche.com/2009/11/silverlight-4-beta.
Saludos.

]]>
Por: Imaz https://www.programandoamedianoche.com/2009/01/llamar-a-funciones-javascript-desde-silverlight-y-a-silverlight-desde-javascript/#comment-97 Tue, 24 Nov 2009 08:31:38 +0000 http://www.programandoamedianoche.com/?p=235#comment-97 Muchisimas gracias.Ya lo solucione,gracias al HtmlHost.Estoy real,mente agradecido.Mil gracias

]]>
Por: Gustavo Cantero (The Wolf) https://www.programandoamedianoche.com/2009/01/llamar-a-funciones-javascript-desde-silverlight-y-a-silverlight-desde-javascript/#comment-96 Mon, 23 Nov 2009 13:20:21 +0000 http://www.programandoamedianoche.com/?p=235#comment-96 En respuesta a Imaz.

Prueba crear el IFRAME dentro del control HtmlHost de DivElements que te comenté en unos mensajes más arriba (http://www.divelements.co.uk/silverlight/tools.aspx) para que lo puedas hacer desde el XAML, y luego navegar la página con el método: System.Windows.Browser.HtmlPage.Window.Navigate.
Cualquier cosa vuelve a escribirnos.
Saludos.

]]>
Por: Imaz https://www.programandoamedianoche.com/2009/01/llamar-a-funciones-javascript-desde-silverlight-y-a-silverlight-desde-javascript/#comment-95 Mon, 23 Nov 2009 11:11:30 +0000 http://www.programandoamedianoche.com/?p=235#comment-95 Hola de nuevo,
Pensaras que soy un pesado, pero si lo que deseo es mostrarlo directamente en el codigo xaml?
Es decir que dentro de MainPage.xaml se muestre la pagina aspx.
Es eso posible? gracias

]]>
Por: Gustavo Cantero (The Wolf) https://www.programandoamedianoche.com/2009/01/llamar-a-funciones-javascript-desde-silverlight-y-a-silverlight-desde-javascript/#comment-88 Fri, 20 Nov 2009 19:13:14 +0000 http://www.programandoamedianoche.com/?p=235#comment-88 En respuesta a Imaz.

Imaz:
Para hacer que desde Silverlight navegue una página en un IFRAME deberías crearlo en el HTML con un nombre, por ejemplo:

<IFRAME name="NombreDelIFrame"></IFRAME>

y luego, desde Silverlight, invocar la siguiente linea (obviamente cambiando la URL a navegar):

System.Windows.Browser.HtmlPage.Window.Navigate("http://www.scientia.com.ar", "NombreDelIFrame");

Si con esto aún no te funciona tu proyecto te invitio a nuestro foro (http://foro.scientia.com.ar) donde podrás ingresar tu consulta y, si puedes, subir la parte de tu proyecto que no funciona, para que podamos mirarlo y ayudarte.
Saludos.

]]>
Por: Imaz https://www.programandoamedianoche.com/2009/01/llamar-a-funciones-javascript-desde-silverlight-y-a-silverlight-desde-javascript/#comment-86 Fri, 20 Nov 2009 09:26:21 +0000 http://www.programandoamedianoche.com/?p=235#comment-86 Hola Gustavo, Gracias por el aporte. Creo que el iFrame es lo que busco. Pero estoy trabajando con controles telerik y no se si es que no me entero(soy nuevo en esto del silverlight) o es que estoy haciendo algo mal.uso el iframe.Navigate y me dice que la ruta no es correcta, quehe de usar una ruta rekativa, pero no doy con ella.Tengo en una misma solucion dos `proyectos, uno de silverlight y el de vb.como pongo la ruta para que de la parte silverlight me muestre un aspx de la parte de vb?.Muchas gracias por la ayuda y espero no molestar. Un saludo

]]>
Por: Gustavo Cantero (The Wolf) https://www.programandoamedianoche.com/2009/01/llamar-a-funciones-javascript-desde-silverlight-y-a-silverlight-desde-javascript/#comment-85 Thu, 19 Nov 2009 14:13:40 +0000 http://www.programandoamedianoche.com/?p=235#comment-85 En respuesta a Imaz.

Imaz: No puedes abrir una página html dentro de Silverlight, pero puedes crear un IFRAME «sobre» el silverlght y navegar ahí tus páginas. Una buena implementación para hacer esto de manera más sencilla es el control HtmlHost de divelements, donde podrias crear un IFRAME y hacer que ahí dentro se carguen tus páginas.
Suerte!

]]>
Por: Imaz https://www.programandoamedianoche.com/2009/01/llamar-a-funciones-javascript-desde-silverlight-y-a-silverlight-desde-javascript/#comment-84 Thu, 19 Nov 2009 11:29:22 +0000 http://www.programandoamedianoche.com/?p=235#comment-84 Buenas.
Me gustaria preguntar en relacion a este tema, una cosita.
System.Windows.Browser.HtmlPage.Window.Navigate(Dirección) esto usas para «ir» a otra pagina, pero si quisieramos abrir un webform dentro de un Grid del xaml, como podriamos hacerlo? Tengo un menu, tanto en la parte superior como en un lateral(todo en silverlight) y me gustaria que al pinchar un item del menu, se me abriera en la misma pantalla un web form. Es esto posible?
Gracias po la ayuda

]]>
Por: Gustavo Cantero (The Wolf) https://www.programandoamedianoche.com/2009/01/llamar-a-funciones-javascript-desde-silverlight-y-a-silverlight-desde-javascript/#comment-67 Mon, 05 Oct 2009 22:15:54 +0000 http://www.programandoamedianoche.com/?p=235#comment-67 En respuesta a Jesus Castrillo.

Para hacer que el navegador «vaya» a otra página, desde Silverlight, puedes utilizar la siguiente linea: System.Windows.Browser.HtmlPage.Window.Navigate(Dirección);.
Si necesitas comunicarte conmigo puedes hacerlo a través de la siguiente página: http://www.programandoamedianoche.com/Gustavo-Cantero, donde vas a encontrar (debajo de todo) una ventana para que podamos chatear a través del Messenger o un link para hacerlo con el Skype.
Saludos!

]]>
Por: Jesus Castrillo https://www.programandoamedianoche.com/2009/01/llamar-a-funciones-javascript-desde-silverlight-y-a-silverlight-desde-javascript/#comment-66 Mon, 05 Oct 2009 22:02:37 +0000 http://www.programandoamedianoche.com/?p=235#comment-66 Gustavo, Gracias por Responder, cambiare esa parte según tu respuesta, pero aun quedo en la duda de como invocar una nueva pagina desde mi pagina Principal despues de autenticar, si me facilitas una direccion de correo, podria enviarte mi proyecto para que lo evalues y veas que tan bien esta y que cosas podria mejorar, ya que en verdad me urge despues de autenticar a mi usuario ir a la nueva pagina Silverlight, del resto Muy agradecido por sus atenciones prestadas.

Jesus Castrillo
P2P Analisis.

]]>
Por: Gustavo Cantero (The Wolf) https://www.programandoamedianoche.com/2009/01/llamar-a-funciones-javascript-desde-silverlight-y-a-silverlight-desde-javascript/#comment-65 Mon, 05 Oct 2009 21:33:45 +0000 http://www.programandoamedianoche.com/?p=235#comment-65 En respuesta a Jesus Castrillo.

Jesus:
Yo creo que lo mejor sería que desde la primer página de Silverlight llamaras a un servicio web que autentique al usuario (el Membership de ASP.NET tiene ya creado un servicio web para esto), y luego actualices tu página de Silverlight.
Si no quieres usar los servicios web del Membership puedes autenticarlo contra tu base de datos y luego hacer lo siguiente (del lado del servidor, en un servicio web): System.Web.Security.FormsAuthentication.SetAuthCookie(NombreDelUsuario, false);. Esto va a generar una cookie del lado del cliente para saber que está autenticado. Luego, cada vez que quieras saber si el usuario está logeado, puedes usar un código como este: System.Web.HttpContext.Current.User.Identity.IsAuthenticated, y esta linea para saber el nombre del usuario: System.Web.HttpContext.Current.User.Identity.Name. Obviamente tu control Silverlight deberá comunicarse con servicios web para saber si el usuario está autenticado o no.
Cualquier consulta no dudes en avisar.
Saludos.

]]>
Por: Jesus Castrillo https://www.programandoamedianoche.com/2009/01/llamar-a-funciones-javascript-desde-silverlight-y-a-silverlight-desde-javascript/#comment-64 Mon, 05 Oct 2009 21:18:10 +0000 http://www.programandoamedianoche.com/?p=235#comment-64 Saludos Dario, tengo una pregunta y va por el mismo camino de alex con la diferencia que ya cree ciertas partes de mi aplicacion, lo unico que me detiene es el famoso paso de una pagina de silverlight a otra de la misma catergoria, te explico:

Logro Autenticar a mis usuarios y validar que existan en la base de datos, despues de ello, requiero automaticamente invocar o llamar a mi segunda pagina Silverlight de mi solucion…

Es Decir desde mi MainPage.xaml -> Autenticacion -> SecondPage.xaml.

La Pregunta de los Mil Dolares, no se como hacerlo automaticamente.

Si Pudieras Ayudarme seria de mucha ayuda… Muchisimas Gracias… Excelente Blog.

Codigo de Revision de Datos de Autenticacion:

if (r.Result.Count != 1)
MessageBox.Show(«Clave o Usuario Incorrecto, Verifique Por Favor»);
else

y alli me quedo… Gracias Amigo.

]]>
Por: Alex https://www.programandoamedianoche.com/2009/01/llamar-a-funciones-javascript-desde-silverlight-y-a-silverlight-desde-javascript/#comment-39 Wed, 01 Apr 2009 14:47:27 +0000 http://www.programandoamedianoche.com/?p=235#comment-39 ok, gracias, claro q me has ayudado, pero aun no me has dicho como llamo a una pagina desde silverlight, explicamelo con codigo incluido (en VB) por favor.
salu2

]]>
Por: Dario Krapp https://www.programandoamedianoche.com/2009/01/llamar-a-funciones-javascript-desde-silverlight-y-a-silverlight-desde-javascript/#comment-38 Tue, 31 Mar 2009 23:42:43 +0000 http://www.programandoamedianoche.com/?p=235#comment-38 Alex,
Entiendo el problema, el tema es que en estos casos se está empleando un enfoque diferente, en lugar pasar la información a la pagina .aspx desde Silverlight para que la misma envíe los datos
al servidor en un postback, es más frecuente hacer que el control Silverlight se comunique directamente con el servidor através de servicios web, esta modalidad es el que se está empleando mayormente para el acceso a datos desde Silverlight.
Entonces, me parece que lo que podrías hacer es crear un servicio web que se encargue de autenticar al usuario e invocarlo desde el control Silverlight, luego a la vuelta de la llamada del servicio web (que es una llamada asincrónica) en base a la respuesta podrías redireccionar desde Silverlight
a la página correspondiente, recuerda que además de validar al usuario en el servicio web deberás verificar en cada página si el mismo se encuentra autenticado, para que no ingresen a paginas que requieren autenticación escribiendo la url en browser. Para hacer esto podrías emplear el enfoque de Forms Authentication y Membership que es provisto por asp.net y te ahorrará algo de tiempo si ya lo conoces.
Otra opción es utilizar variables de sesión, aunque vas a tener que verificar manualmente la autenticación en ese caso.
Espero que esta respuesta te haya ayudado y saludos.

]]>
Por: Alex https://www.programandoamedianoche.com/2009/01/llamar-a-funciones-javascript-desde-silverlight-y-a-silverlight-desde-javascript/#comment-37 Tue, 31 Mar 2009 21:48:53 +0000 http://www.programandoamedianoche.com/?p=235#comment-37 Dario, me explico mejor, yo cree una aplicacion de asp.net y luego agrege una nueva aplicacion en este caso de silverlight (en el proyecto tengo 2 aplicaciones asp y silverlight), agrege un tex un password dos etiquetas y un boton en la pagina de silverlight en donde en el boton hay un evento clic que le agrege para q al dar clic me valide la entrada a sql2005, si existe el usuario me de paso al sistema que quiero desarrollar en asp.net entre lo q voy a desarrollar esta el control de bodegas, ese es solo un modulo, seran mas con el tiempo,estoy intentando usar linq para trabajar con los datos, ahora ¿..cómo llamo al dar clic en el boton a la pagina de asp….??? (estoy dando un inicio de sesion), claro y de ahi seguira a donde tiene que segir en asp… el diseño de la pagina en silverlight lo he trabajado en blend 2 sp1 ojo no soy experto recien estoy intentando crear mi apliccion desde cero, tanto en blend, como en silverlight. disculpa por no haberme explicado mejor antes, creo q ahora esta mas clara la pelicula, … como llamo a una pagina de asp desde el boton de silverlight, te seguire molestando amigo…
salu2

]]>
Por: Alex https://www.programandoamedianoche.com/2009/01/llamar-a-funciones-javascript-desde-silverlight-y-a-silverlight-desde-javascript/#comment-36 Tue, 31 Mar 2009 19:11:00 +0000 http://www.programandoamedianoche.com/?p=235#comment-36 hola y gracias por ser atento a mi pedido, sabes se me olvido decirte q entiendo algo en VB y no C#, tu explicacion es buena pero no la entiendo en c#, me la podrias decir en VB por favor, y perdona la molestia, para no enredarme respondeme a esta pregunta, «Como hago para llamar a una pagina de silverlight desde silverlight» es que necesito aprender, de nuevo gracias, estoy atento a tu respuesta.

]]>
Por: Dario Krapp https://www.programandoamedianoche.com/2009/01/llamar-a-funciones-javascript-desde-silverlight-y-a-silverlight-desde-javascript/#comment-35 Tue, 31 Mar 2009 16:55:50 +0000 http://www.programandoamedianoche.com/?p=235#comment-35 Hola Alex,
Te voy comentando por pregunta, la primera es sobre la vinculación de un control Silverlight a una página ASP.NET, si ya posees un control Silverlight terminado, por ejemplo un control hecho por terceros o uno hecho por vos ya testeado y funcionando por completo (como un archivo .xap), lo que debes hacer es copiarlo en la carpeta bin o si lo deseas en alguna subcarpeta dentro
de la carpeta bin y luego en la pagina .aspx crear un elemento Silverlight y hacerle referencia en el atributo Source, por ejemplo

<asp:Silverlight ID=»Xaml1″ runat=»server» Source=»~/ListTree.xap»
MinimumVersion=»2.0.31005.0″ Width=»100%» Height=»100%» />

Si no posees un control ya terminado, o sea que estás creando un control Silverlight, Visual Studio (2008) puede ayudarte automatizando las tareas de prueba del control, podés agregar en la solución del projecto Silverlight un proyecto ASP.NET convencional desde las propiedades del proyecto ASP.NET, en la solapa «Silverlight Applications» (Versión en inglés del VS) podrás incluir el proyecto Silverlight que estás creando presionando el botón «Add»,Visual Studio te permitirá crear una página .aspx (también te incluirá una pagina html) de pruebas con el control ya embebido y ajustará a la solución para que compile, genere el .xap y lo copie a la carpeta bin automáticamente ahorrandote mucho tiempo.

Para conectar dos controles Silverlight dentro de una misma página, supongamos que desde el control Sil1 deseas enviarle una cadena de texto al control Sil2, ambos embebidos en una página .aspx, hay tres pasos que debes seguir;
Hacer que el control Sil1 exporte información, Hacer que el control Sil2 importe información y hacer el puente entre ambos.

Para el primer paso deberás hacer que el control Sil1 exporte información, esto en el mundo práctico es hacer que Sil1 llame una función JavaScript en la página .aspx, para hacer eso simplemente deberás invocar a la función JavaScript de la siguiente forma

HtmlPage.Window.Invoke(«miJSFunc», «Cadena enviada desde Sil1!»);

Luego debes hacer que el control Sil2 importe información, la idea es que Sil2 posea métodos invocables desde JavaScript para recibir información y esto se hace incluyendo el atributo «ScriptableMember» en el método de Sil2 que será invocado

[ScriptableMember]
public void RecibirTexto(string Text)
{

Además deberás registrar el control como scriptable, simplemente agregando

HtmlPage.RegisterScriptableObject(«Page», this); en el constructor del control Sil2

Finalmente deberás crear el puente entre ambos como una función javascript en la página .aspx que contiene ambos controles

function miJSFunc(texto) {
var Objs1 = $find(«Sil2»);
var Elems1 = Objs1.get_element();
Elems1.Content.Page.RecibirTexto(texto);
}

Con esos pasos deberías poder conectar ambos controles, esto es solo un ejemplo mínimo, en un caso real podrías sofisticar un poco este esquema y hacer que el control Sil1 escriba el javascript en la pagina, deberías emplear el clientID de ASP.NET en el $find (<%= Sil2.ClientID ) y no usar el nombre directamente ya que el nombre del control (Sil2) puede variar en ciertos escenarios, por ejemplo si el control se encuentra dentro de panels.
También podrías necesitar enviar información compleja entre los controles, dejo esas posibilidades a tu creatividad y espero que esta información te haya resultado útil.

]]>
Por: Alex https://www.programandoamedianoche.com/2009/01/llamar-a-funciones-javascript-desde-silverlight-y-a-silverlight-desde-javascript/#comment-34 Mon, 30 Mar 2009 23:38:32 +0000 http://www.programandoamedianoche.com/?p=235#comment-34 HOLA A TODOS, necesito de su ayuda, como hago para llamar a una pagina de Silverlight desde Silverlight, y como hago para vincular silverlight a una pagina de asp.net, es decir en lugar de usar CSS para maquillarla usar Silverlight para ello, saludos desde Ecuador.

]]>