Material [Webcast] La web desde cero II – JQuery

Ya tenéis disponible el webcast y todo el matería que utilicé en la sesión sobre JQuery, para todo aquel que no pudo asistir en directo lo puede ver ahora gravado y descargar el proyecto para probar las demos.

 

Os lo podéis descargar desde :

streaming Material streaming WebCast streaming PPT

 

 

 

Material WebCast MSDN – BCN Reload II

Últimamente he estado muy liado y no he tenido tiempo de aportar casi nada, pero he tenido la suerte de poder participar en algún que otro evento donde como siempre me lo he pasado genial.

Esta vez adjunto la presentación de la charla que se organizó en el grupo de usuarios BCNDev para su relanzamiento después de estar un tiempo sin hacer eventos.

En esta charla se presenta el nuevo motor script de Internet Explorer 9 y su excelente compatibilidad con el estándar EcmaScipt5.

Si prefieres ver esta charla gravada la repetimos para MSDN LATAN como webcast y la puedes ver cuando te apetezca desde:

Webcast MSDN: Integración JavaScript Nativa en IE9 “Code Name Chakra”

Webcast MSDN: Integración JavaScript Nativa en IE9 “Code Name Chakra”

Recordad Hoy “Miércoles 24 Noviembre” a las 8:00PM España – 2:00PM Bogotá.

Tendremos el Webcast MSDN: Integración JavaScript Nativa en IE9 “Code Name Chakra” El objetivo de esta sesión es presentar todas las mejoras y todas las posibilidades que podemos encontrar con el nuevo motor script integrado en el nuevo navegador de Microsoft.

Registro:

https://msevents.microsoft.com/CUI/WebCastEventDetails.aspx?EventID=1032463427&EventCategory=4&culture=es-AR&CountryCode=AR

JSON con ASP.NET II

Por petición popular voy a ampliar el artículo que dedique en su día a la clase DataContractJsonSerializer la cual podemos utilizar para serializar o deserializar objetos JSon a objetos .NET.

En este artículo explicaré como pasar una colección de objetos JSON al servidor mediante ASP.Net AJAX de una forma muy sencilla.

Puedes ojear el artículo inicial en : serializar-deserializar-json-en-asp-net

Simplemente ampliaré el ejemplo que ya utilicé en el primer artículo, para que podamos seleccionar varios registros de la grid y posteriormente pasar esta lista de objetos al servidor utilizando un método accesible desde el cliente “PageMethod” con ASP.NET AJAX.

 

Este “PageMethod” es muy sencillo, simplemente espera una colección de objetos ProductoData.

Por defecto nuestro método utilizará el formato JSon para recibir los datos, pero he dejado el atributo ResponseFormat para que veáis como se puede especificar si queremos utilizar XML o JSON para nuestro tratamiento de los datos. Sigue leyendo

Jquery check all CheckBox

Hacía ya tiempo que no dedicaba ni un solo minuto a preparar una entrada para el blog, pero hoy me he plantado y le voy a dedicar un poco para solucionar una de las dudas que suelen salir en los foros de MMSDN.

Como seleccionar todos los checkBox de un DataList o un GridView, esto que puede parecer muy sencillo se nos puede complicar bastante si utilizamos directamente JavaScript, pero con JQuery solo necesitaremos una línea de código Si, solo una línea de código”.

Supongo que a estas alturas la gran mayoría ya conoce que es el la librería Jquery y las ventajas que nos ofrece al escribir nuestro código de cliente y sobre todo porque ahora nos permite tener inteligencie, sumando más potencia a esta productiva librería que os la podéis bajar desdehttp://jquery.com .

 

Lo primero que voy a hacer es crear una lista para enlazar los datos en el Datalist. No voy a entra en la mejor forma de crear datos ni validarlos simplemente utilizaré un tipo anónimo para realizar el ejemplo lo más simple y rápido posible ;-). Sigue leyendo

Localizar nuestro código Script

Uno de los grandes inconvenientes que nos solemos encontrar en los desarrollos web, es tratar de localizar nuestros recursos y asegurarnos que toda nuestra aplicación este bien traducida.

Pero claro una aplicación web 3.0 no solo se basa en páginas de servidor, hoy en día tenemos ASP.NET, AJAX, javascript, Json, etc. Y claro todos estos recursos no los podemos controlar únicamente desde el servidor y desde el cliente no podemos acceder a los recursos utilizados por asp.net.
Estos inconvenientes hacen que a los programadores web se nos dispare la imaginación para poder solucionar estos baches cotidianos.

Una solución si utilizamos ASP.NET AJAX es utilizar diferentes ficheros javaScript como recursos, podéis encontrar más información en http://msdn.microsoft.com/es-es/library/bb398935.aspx.

Pero claro si no utilizamos ASP.NET AJAX o no nos interesa crear múltiples ficheros js podemos intentar aprovechar los recursos que ya utilizamos con ASP.NET y aquí va mi propuesta.  He creado un pequeño proyecto el cual valida con un script si el cliente entra números en un TextBox, pero claro si intento aprovechar el código de asp.net para utilizar los recursos en el fichero script resulta que no funciona.

function Validar()
{
   var check = true;
   var obj = document.getElementById('TextBox1');
   var value = obj.value;
   for(var i=0;i < obj.value.length; ++i)
   {
     var new_key = value.charAt(i);
     if(((new_key < "0") || (new_key > "9")) &&
       !(new_key == ""))
     {
        check = false;
        break;
     }
    }
    if(!check)
      alert("<%$ Resources:Resource, Saludo %>");
}

Esto no tiene nada de texto traducido. ver que podemos hacer con lo que ya contamos ;-)  Primero aprovecharemos los ficheros de recursos que ya utilizamos en nuestra aplicación asp.net.  Luego crearemos un método que guarde en el cliente los recursos que necesitaremos utilizar en nuestro código script.

privatevoid RecursosJavascript(Dictionary<string,string> recursos)
{
  System.Text.StringBuilder script = new System.Text.StringBuilder();
  script.AppendLine("recursos = new Object;");
  foreach (KeyValuePair<string, string> recurso in recursos)
  {
    script.AppendFormat("recursos.{0} = '{1}';", recurso.Key,
       recurso.Value);
  }

    ScriptManager.RegisterStartupScript(this, this.GetType(),
         "recursos", script.ToString(), true);
}

Un código muy sencillo que creará una variable donde se guardarán los recursos como texto en un objeto creado para este menester y registrará un script en la página.  Luego al cargar la página inicializamos este objeto con los mismos recursos que utilizamos en la página asp.net y lo tendremos disponible desde nuestro validador script.

Finalmente desde el script utilizamos la variable de recursos generada especialmente para esta página y la utilizamos para mostrar el mensaje de error correctamente localizado.

Ya tenemos nuestra aplicación funcionando al 100% sin tenernos que preocupar por esos mensajes incontrolados desde el código de cliente.

Espero que esta idea sea util ;-)

 

AJAX TabControl – Tabs Optimizados II

En un artículo anterior explique como optimizar los TabPanels de ASP.NET AJAX Control Toolkit sin tener que extender ni modificar una línea de código, tan solo aprovechando la funcionalidad del UpdatePanel y cargar la información de los tabs solo cuando se selecciona y no cargar todos los datos al principio.

Pero si utilizas este truco junto a un UpdatePogress te das cuenta que al cargar la primera vez los datos no muestra el contenido del UpdatePogress y da una mala sensación de retraso al mostrar los datos.

Pero si luego lanzamos eventos que actualizan el UpdatePanel si se muestra el UpdatePogress correctamente. Sigue leyendo

Iframe Redimensionable con AJAX

Trabajar con iFrames es una tarea bastante ingrata sobre todo cuando te interesa que el contenedor se adapte al tamaño del contenido.
Buscando por internet encontré unos ejemplos muy interesantes:

  1. El de Microsoft http://support.microsoft.com/kb/278469/es
  2. El de los foros  http://www.forosdelweb.com/showthread.php?t=510457

Nos explican como aprovechar el evento onload del BODY para lanzar una función javaScript que recalcule el tamaño.

Pero que pasa si la página del iFrame utiliza Ajax.Net ?????

Pues que como ajax.net carga parcialmente la página no se lanza el evento onload de nuevo.Entonces seguí surfeando por la web y encontré otro artículo muy interesante http://netcodigo.webinfo.es/2007/02/02/controlar-llamadas-asincronas-con-aspnet-ajax/.

Con este artículo conocí la clase PageRequestManager clase encargada de controlar el renderizado parcial de las páginas, tenemos eventos, Métodos y propiedades para proporcionarnos este servicio. Sigue leyendo