Cómo escribir y leer valores en localStorage utilizando javaScript

“localStorage” es una mejora de las “Cookies”, te permite almacenar y leer información en el navegador, sin tener que enviarse necesariamente al servidor. Es muy útil si necesitas guardar datos que vas a estar utilizando continuamente, por ejemplo, con plugins de jQuery: “data grids”, selectores de opciones, guardar el estado de un menú, etc. El tamaño máximo que puedes guardar utilizando “localStorage” son 10MB.

Es muy fácil de utilizar, para crear una variable hazlo así:

localStorage.setItem("Numero", 11);
localStorage.setItem("Nombre", "Checo Pérez");

Si quieres saber si una variable ya está establecida, utiliza:

if (localStorage.getItem("Numero")) {
   //Haz algo aquí
}

Para obtener el valor de una variable:

var elNombre = localStorage.getItem("Nombre");
var elNumero = parseInt(localStorage.getItem("Numero"));

Para eliminar una variable:

localStorage.removeItem("Nombre");

Ahora bien, si estás usando objetos, entonces necesitas primero guardarlos como Json. Hazlo así:

var miObjeto = { Nombre: "Checo Pérez", Numero: 11, Pais: "México", Activo: true };
//Para colocar el objeto en localStorage
localStorage.setItem("Piloto", JSON.stringify(miObjeto));
//Para leer el objeto Json
var piloto = JSON.parse(localStorage.getItem("Piloto"));
//Para leer las propiedades:
var nombre = piloto.Nombre;
var numero = piloto.Numero;
var pais = piloto.Pais;
var activo = piloto.Activo;

Espero que te sirva.

Cómo agregar el salto de lí­nea a los caracteres válidos de un FilteredTextBoxExtender

En el Ajax Control Toolkit de ASP.NET, hay un control llamado FilteredTextBoxExtender que sirve para filtrar los caracteres que se pueden ingresar en un TextBox. Esto es útil, por ejemplo, para permitir únicamente el ingreso de números si estamos capturando un código postal mexicano.

Bueno, estaba usándolo en un TextBox con la propiedad TextMode establecida en MultiLine, lo que en HTML se despliega como un textArea, una caja de texto con múltiples lí­neas.

Esta es la definición de mi caja de texto y el control de filtrado:

 <asp:TextBox 
      ID="Tags" 
      runat="server" 
      TextMode="MultiLine" 
      Width="200px" 
      Height="150px">
 </asp:TextBox>
  
 <cc1:FilteredTextBoxExtender 
      ID="Tags_FilteredTextBoxExtender" 
      runat="server" 
      Enabled="True" 
      TargetControlID="Tags" 
      ValidChars="abcdefghijklmnopqrstuvwxyz1234567890 ABCDEFGHIJKLMNOPQRSTUVWXYZ">
 </cc1:FilteredTextBoxExtender> 

Como puedes ver, estoy permitiendo la entrada de letras mayúsculas, minúsculas, números y espacios. Pero como se trata de una caja de texto con míltiples lí­neas, obviamente quiero que se permita teclear saltos de lí­nea cuando el individuo presione la tecla enter o intro.

Este caso es truculento, porque no puedes hacerlo en la página aspx, lo tienes que hacer en el código de servidor, de esta forma:

Tags_FilteredTextBoxExtender.ValidChars = Tags_FilteredTextBoxExtender.ValidChars & vbCrLf

Como sabrás, vbCrLf significa un salto de lí­nea en Visual Basic, y lo que hace esa lí­nea es añadirlo a los caracteres válidos.

¡Medio truculento pero funciona!

Genera un delay en una aplicación ASP.NET

En ocasiones (muy raras tal vez) necesitarás generar un delay. Un tiempo de espera. Simplemente unos segundos en los que la aplicación duerma.

Te preguntarás para qué querrí­a alguien esto. Bueno, uno de los casos en los que puede ser útil es si necesitas simular un tiempo de respuesta lento de la conexión a internet. Por ejemplo, si tienes un UpdateProgress de Ajax que estás probando en un servidor local, el procesamiento puede ser tan rápido que quizás nunca veas tu gif animado girar. En estos casos, puedes colocar un delay que te permita simular que el servidor y/o la conexión tardan un rato en reaccionar.

Para hacerlo, utiliza este código:

Threading.Thread.Sleep(3000)

Donde el 3000 que pongo son milisegundos, en este caso el tiempo de espera serí­a de 3 segundos.

Librerí­a de JavaScript jQuery

Existen varios productos desarrollados en JavaScript que puedes comprar por separado para incluir en tus sitios web, como tabs (pestañas), acordeones, pop-ups, etc.

Pero hay una librerí­a muy buena que es de descarga gratuita, se llama jQuery.

A pesar de ser libre está muy bien desarrollada, incluso tiene distintos temas de diseño de cuales escoger. Cada componente tiene varias opciones de configuración que te permiten personalizarlos.

Esta librería contiene:

Interacciones

  • Arrastrar
  • Soltar
  • Dar tamaño
  • Seleccionar
  • Ordenar

Widgets

  • Acordeón
  • Seleccionador de fecha
  • Ventana emergente
  • Barra de progreso
  • Deslizador (slider)
  • Pestañas (tabs)
jquery

Si eres desarrollador también puedes desarrollar tus propios widgets usando esta librería.

Esta es la página donde encuentras los widgets:
http://ui.jquery.com/

Cómo instalar una DLL en el GAC (Global Assembly Cache)

En ocasiones, cuando estás trabajando en Visual Web Developer 2008 con componentes ASP.NET de terceros (third party), notarás que no funciona el Intellisense y además el diseñador marca que tu componente no está definido. Este es un ejemplo de este problema con el componente FreeTextBox:

Component Not Declared

Noté que esto me pasaba por la siguiente razón: Los archivos de mi aplicación están hosteados en un servidor (no en mi PC de desarrollo), por lo que creé una conexión a una unidad de red, asignándola a una letra. Es decir, habí­a mapeado servidorinetpubwwwrootproyecto a w:proyecto. Al parecer si tienes tu servidor web de desarrollo corriendo en tu misma PC, lo anterior no ocurre, pero me parece que es muy probable que trabajes en una PC de desarrollo y accedas a un servidor de desarrollo mediante la red local donde están (y corren) los archivos de tu aplicación. Al menos es mi caso.

Para corregir esta situación tienes que agregar los DLLs del control en el GAC.

Deberás usar la utilidad gacutil.exe que viene en el SDK del .Net Framework 2. Si no lo tienes, descarga el SDK de aquí­: http://www.asp.net/Downloads/essential/

Coloca el componente (el DLL) en un fólder de la PC en la que usas Visual Web Developer 2008:
explorer.gif

Ahora abre una ventana de MS-DOS, cámbiate a la carpeta en la que tienes instalado el gacutil.exe y corre el comando:

gacutil -i nombredeldll.dll

Algo como esto:
Registrando el DLL en el GAC

Ahora reinicia Visual Web Developer, abre tu aplicación de nueva cuenta y mira como ya funciona el Intellisense y no aparece el error de que tu control no está declarado:
Intellisense funcionando

Espero que te sea de utilidad. 🙂

Actualización
Si necesitaras desinstalar la libreria del GAC, utiliza esta instrucción:
gacutil -u NombreDeLaLibreria
No escribas .dll
Por ejemplo:
gacutil -u FreeTextBox