JASoft.org

AJAX con ASP.NET 2.0 (The "a pelo" series): Script Callbacks (yIII): Un ejemplo completo

AJAX con ASP.NET 2.0 (The "a pelo" series): Script Callbacks (yIII): Un ejemplo completo
Para finalizar las "the a-pelo series" sobre AJAX dedicadas a los Script Callbacks en ASP.NET 2.0 vamos a realizar un ejemplo completo que muestre todo lo que comentamos en los post precedentes. Nuestro ejemplo será muy sencillo pero suficiente para comprender todo lo explicado hasta ahora. Crearemos una página con una lista de categorías y un botón que, al ser pulsado, mostrará debajo (sin hacer postback) los contenidos de dicha categoría (sin florituras). La siguiente figura muestra la idea: Un poco cutre ¿no? Pero de esta forma obviaremos otro código que nos pueda descentrar de nuestro objetivo que es entender los Script Callback. Los preparativos Crea un nuevo proyecto de Visual Web Developer. En la página por defecto (Default.aspx) arrastra un control DropDownList y llámale 'ddlCategorías'. Asígnale una lista de elementos (Empresas, Libros, Blogs, Revistas...). No marques su opción de AutoPostBack. Ahora añade un botón. Pero ojo, muy importante, no nos sirve un botón de AS... [Más]

AJAX con ASP.NET 2.0 (The "a pelo" series): Script Callbacks (II): La interfaz ICallbackEventHandler

AJAX con ASP.NET 2.0 (The "a pelo" series): Script Callbacks (II): La interfaz ICallbackEventHandler
Bueno, en el anterior post, ya hemos visto que para poder hacer uso de la característica de Callback nativa de ASP.NET 2.0 sólo hay que implementar la interfaz ICallbackEventHandler. Ésta sólo tiene dos miembros: Método RaiseCallbackEvent: Es llamado automáticamente cuando se produce un Callback al servidor mediante Script. Se le pasa como parámetro una cadena que se genera en el lado de cliente (en el navegador) antes del envío. Enseguida veremos la manera de hacerlo. Dentro de este método hacemos el procesamiento que necesitemos, por ejemplo, recibimos un identificador y vamos a una base de datos para obtener los datos de detalle de una entidad asociada. Cualquier cosa. Su definición es la siguiente: void ICallbackEventHandler.RaiseCallbackEvent(string eventArgument) Método GetCallbackResult: este es el método que se llama automáticamente para devolver los resultados al cliente. Dichos resultados se devuelven en forma de cadena (es el tipo devuelto por el método) y se pas... [Más]

AJAX con ASP.NET 2.0 (The "a pelo" series): Script Callbacks (I)

AJAX con ASP.NET 2.0 (The "a pelo" series): Script Callbacks (I)
Seguro que recuerdas que no hace mucho estuve haciendo en el blog una serie sobre AJAX (1, 2, 3, 4, 5, 6 y 7) "super-a-pelo", es decir, usando sólo JavaScipt y tu imaginación, nada de Atlas y compañía. La verdad es que tuvo bastante éxito y muchas visitas, referencias, trackbacks, etc... Viendo que el tema suscita interés voy a continuarlo un poco pero esta vez haciéndolo con una nueva característica que es nativa a ASP.NET 2.0 y que se denomina Script Callbacks. Esto facilita bastante el trabajo con AJAX respecto a hacerlo todo uno mismo, pero aún así sigue siendo más complicado que usar una biblioteca estilo AJAX.NET o la propia Atlas de Microsoft que ahora está en beta. Por este motivo y dado que sigue siendo una técnica algo rupestre denominaré a esta nueva serie como AJAX con .NET: The "a pelo" series ;-) Bueno, veamos primero un poquito de teoría y en los siguientes post pasaremos ya a la práctica de esta técnica nativa de .NET a la que podremos sacar bastante partido... [Más]

Creación de un control botón ASP.NET para regreso automático

Creación de un control botón ASP.NET para regreso automático
Una cuestión común en todas las aplicaciones Web es hacer que la navegación sea lo más sencilla posible para nuestros usuarios. Una situación muy habitual es la de reutilizar una página para varios propósitos de modo que a ésta se puede llegar por diversos sitios. Si colocamos un botón de "Cancelar" o "Volver" es frecuente que tengamos que escribir bastante código para asegurarnos que devolvemos al usuario al lugar del que vino teniendo en cuenta los diferentes "postbacks" producidos por los controles de la página. El siguiente control permite aislarnos de este tipo de cosas haciendo por debajo él todo el trabajo. Añade un nuevo control de usuario y llámale "Volver.ascx". Sobre su superficie coloca simplemente un botón con el nombre cmdVolver y asígnale el texto "Volver". En el archivo de código escribe lo siguiente (en C#, en VB sería más o menos igual): using System;using System.Data;using System.Configuration;using System.Collections;using System.Web;using System.Web.Security;usi... [Más]

Otro bug de .NET que he descubierto: valores calculados en DataSet tipados.

Otro bug de .NET que he descubierto: valores calculados en DataSet tipados.
Este bug lo he descubierto hace poco y lo puse en su día en la página de Connect de Microsoft. El caso es que hasta la fecha nadie ha dicho "esta boca es mía", pero para mi se trata de un error claro. A continuación describo la situación así como la forma de salvarla con el menor esfuerzo...: Una aplicación Web (imagino que en una Windows pasaría lo mismo, pero no lo he comprobado). Creas un DataSet tipado con su correspondiente TableAdapter para realizar el acceso a datos. A los campos devueltos le añades manualmente uno nuevo (o varios) que serán campos calculados a partir de los otros (por ejemplo, asignándole una expresión del tipo "Apellidos + ',' + Nombre"). Ahora pruebas el TableAdapter con la opción de vista previa y verás que, en efecto, todo va bien y la nueva columna muestra el valor calculado que se supone que debería tener. De acuerdo... Ahora escribes código en tu aplicación que instancia el TableAdapter y llama a la versión 'Get' del método de acceso a datos (como sab... [Más]

Comportamiento extraño con el formato de fechas en los GridView

Comportamiento extraño con el formato de fechas en los GridView
Cuando estamos usando un GridView para mostrar datos obtenidos de una base de datos resulta muy cómodo usar el editor de columnas para definir cómo se deben mostrar los datos en el listado que se genera. Una propiedad muy interesante de las columnas enlazadas en DataFormatString, que nos permite decidir qué estilo queremos aplicar a las columnas. Sin embargo con los campos que contienen fechas pasa unacosa muy rara... Si tenemos un campo que es una Fecha y definimos una columna enlazada de modo similar a este: <asp:BoundField DataField="FechaFin" DataFormatString="{0:d}" HeaderText="Final"> esperaremos ver algo similar a lo siguiente en la columna: 13/7/2006. Sin embargo por más que cambiemos el formato veremos algo como esto: 13/7/2006 00:00:00 Es decir, no hace caso y mete el formato de fecha y hora cortas. Si queremos que una columna de tipo fecha haga caso al formato tenemos dos soluciones: 1.- Convertirla en una plantilla. Con esto funcionará sin problemas ... [Más]

Funcionalidad AJAX en el control GridView de ASP.NET 2.0

Funcionalidad AJAX en el control GridView de ASP.NET 2.0
Volviendo un poco sobre el tema de AJAX que ya he tratado en muchos de los post anteriores, voy a hacer un pequeño comentario respecto a dotar de funcionalidad similar a la esperada en un entorno AJAX cuando estamos usando el nuevo control GridView de ASP.NET 2.0. Como es sabido este estupendo control nos permite dotar de funcioalidades de paginación y ordenación de datos a un origen de datos sin necesidad de escribir código alguno. Lo que ya no sabe mucha otra gente es que, además, en la mayoría de los casos se puede conseguir esta funcionalidad sin tener que refrescar la página completa, al más puro estilo AJAX. De este modo al pulsar sobre la cabecera de la rejilla o al cambiar de página se recargan exclusivamente los contenidos de ésta, pero sin realizar un "PostBack" al servidor que fuerza el refresco de la página completa. Para ello sólo es necesario establecer a true la propiedad EnableSortingAndPagingCallbacks del control, como ilustra la figura del lateral. Al hacerlo se co... [Más]

XHTML (y IV) - Uso del estándar desde ASP.NET 1.1

XHTML (y IV) - Uso del estándar desde ASP.NET 1.1
Todo lo que he contado hasta ahora es estupendo si ya te has pasado a ASP.NET 2.0 y VS2005 Pero ¿qué pasa con los que todavía siguen usando la versión anterior, ASP.NET 1.1? Pues que están bastante fastidiados si necesitan XHTML, la verdad. Pero como casi todo en esta vida tiene solución y encima está en Internet ;-) los amigos de RiderDesing.com (especializados en sitios Web ecuestres, lo flipas) han creado un gestor de peticiones para ASP.NET 1.1 que se encarga de que las páginas hechas en ésta versión generen XHTML 1.1 Strict, incluso quitando el atributo 'target' de los enlaces y otras lindezas por el estilo. Y encima es gratuito (o eso parece). Por si fuera poco tiene otro más que genera XHTML 1.0 Transitional, para cuando no se necesita tanta rigidez. Muy interesante. Los puedes descargar desde la página de productos de RiderDesign.

XHTML (III) - Validación desde el entorno de desarrollo

XHTML (III) - Validación desde el entorno de desarrollo
Siguiendo con la serie iniciada hace poco sobre XHTML, y para terminarla, vamos a ver cómo establecer las opciones de validación de éste desde Visual Studio 2005. Cuando editamos una página en modo "Marcadores" (es decir, viendo el código HTML) el editor nos ayuda con "Intellisense" (es decir, adelantándose a lo que vamos a escribir para no tener que aprendernos los atributos y valores) y además valida los posibles errores de una manera similar a como lo hace Word cuando encuentra faltas ortográficas: subrayándolos con una línea ondulada de color azul: Además del subrayado también nos ofrece información sobre el error en el "Tooltip" que aparece cuando nos colocamos encima con el cursor, y si tenemos abierta la ventana de errores veremos una lista con todos ellos. La validación se realiza contra el esquema definido para la página actual, que puede ser uno cualquiera de los disponibles en Visual Studio o alguno definido por terceras partes que le añadamos. Por defecto se utiliza XH... [Más]

DotnetNuke starter kit: ¡no lo instales, es un peligro!

DotnetNuke starter kit: ¡no lo instales, es un peligro!
Estoy fastidiado :-( Hoy se me ocurrió la brillante idea de instalar en mi equipo de trabajo el Starter Kit de DotNetNuke 4.x (no me voy a molestar ni en poner la URL a este programa). Se trata de un software de código abierto para ASP.NET 2.0 que permite crear aplicaciones de contenido Web sin mucho esfuerzo. El caso es que al hacerlo me ha fundido por completo mi Visual Studio 2005. Ahora o puedo hacer absolutamente nada. Lo he intentado reparar, reinstalar e incluso volver a un estado anterior con un punto de restauración del sistema. NADA. No hay forma de recuperar el entorno. Muerto, eliminado, kaput... :-( En cuanto intentas crear cualquier nuevo proyecto se te queda el entorno colgado y no hay manera. Lo peor es que no hay manera de deshacerse de este problema (o yo al menos no la he encontrado). El instalador de contenidos de Visual Studio no tiene opción alguna para desinstalar (ya les vale), y he probado también a resetear los ajustes todos, borrar la caché de plantil... [Más]

Este soy yo y este es mi blog técnico, dedicado al software y a la programación.

¡Sígueme en Twitter!

Mis otros blogs

- JM Alarcón @ campusMVP.es
Contenido técnico en español orientado a desarrolladores
- JMAlarcon.es
Blog personal no técnico: sociedad, innovación, empresa...

Krasis

- campusMVP.es:
Los mejores cursos online de programación en español

- SELF LMS:
La plataforma de elearning más potente del mercado.

Histórico