Como sabrán una de las cosas que la versión final de Silverlight 3 no tiene es el control de ASP.NET AJAX para Silverlight (control <asp:Silverlight>). Esto es un cambio de paradigma, para todos aquellos que estábamos acostumbrados a utilizarlo en nuestras páginas .aspx, ya que no tenemos una manera intuititva de establecer las propiedades para el plugin de Silverlight 3. El camino a seguir ahora es utilizar la etiqueta <object> de HTML. Pueden encontrar una lista de los parámetros que podemos establecer para nuestras aplicaciones Silverlight en esta página del MSDN.
Ahora bien, la pregunta es: ¿cómo podemos establecer parámetros iniciales dinámicos del lado del servidor para el plugin de Silverlight? Esto como recordarán estaba en la propiedad InitParameters del control <asp:Silverlight>, y al ser un control de servidor podíamos utilizarlo en el evento Page_Load de la página. Con <object> este ya no es el caso pero de todas formas sí podemos establecer parámetros iniciales de manera dinámica del lado del servidor si utilizamos el control <asp:Literal> al agregar el parámetro initParams de la siguiente manera:
<param name="initParams" value=’<asp:Literal runat="server" ID="parametros" />’ />
Esto nos permitire tener acceso programático del lado del servidor al control llamado ‘parametros’ y establecer en él cualquier valor que necesitemos. El siguiente fragmento de código muestra el manejador del evento Load de la página aspx:
|
1 |
<span style="color: #0000ff">protected</span> <span style="color: #0000ff">void</span> Page_Load(<span style="color: #0000ff">object</span> sender, EventArgs e) |
|
1 |
{ |
|
1 |
parametros.Text = <span style="color: #0000ff">string</span>.Format(<span style="color: #006080">"nombre={0},fecha={1}"</span>, <span style="color: #006080">"Rodrigo"</span>, DateTime.Now.ToString()); |
|
1 |
} |
Como podemos apreciar, se están estableciendo dos parámetros iniciales: usuario y fecha. Para leerlos lo hacemos de la manera tradicional, por medio de los argumentos del evento Application.Startup de nuestra aplicación Silverlight:
|
1 |
<span style="color: #0000ff">private</span> <span style="color: #0000ff">void</span> Application_Startup(<span style="color: #0000ff">object</span> sender, StartupEventArgs e) |
|
1 |
{ |
|
1 |
<span style="color: #0000ff">string</span> nombre = <span style="color: #0000ff">string</span>.Empty; |
|
1 |
<span style="color: #0000ff">string</span> fecha = <span style="color: #0000ff">string</span>.Empty; |
|
1 |
<span style="color: #0000ff">if</span> (e.InitParams.Count > 0) |
|
1 |
{ |
|
1 |
<span style="color: #0000ff">if</span> (e.InitParams[<span style="color: #006080">"nombre"</span>] != <span style="color: #0000ff">null</span>) |
|
1 |
nombre = e.InitParams[<span style="color: #006080">"nombre"</span>]; |
|
1 |
  |
|
1 |
<span style="color: #0000ff">if</span> (e.InitParams[<span style="color: #006080">"fecha"</span>] != <span style="color: #0000ff">null</span>) |
|
1 |
fecha = e.InitParams[<span style="color: #006080">"fecha"</span>]; |
|
1 |
} |
|
1 |
  |
|
1 |
<span style="color: #0000ff">this</span>.RootVisual = <span style="color: #0000ff">new</span> MainPage(nombre, fecha); |
|
1 |
} |
De esta manera, podemos sortear la falta del control asp:Silverlight en nuestros aplicativos de Silverlight 3.
Salu2!




2 comments
Mostrar la IP y el tipo del Browser en Silverlight 3 « Escarbando Código says:
Oct 1, 2009
[...] La Liga Silverlight . Categorías:Silverlight Etiquetas:Asp.Net, Información Browser, Mostrar IP, Silverlight 3 Comentarios (0) Trackbacks (0) Deja un comentario Trackbacks [...]
Cerebrado says:
Oct 10, 2009
GENIAL !!! He estado buscando la forma mas simple de pasar los parametros al objeto y éste artículo dá en la tecla.
Debería haber una manera de borrar los craps de internet, o de hacer referencia a las cosas realmente utiles.