Calendario Ajax in TextBox

Ajax como es de saber proporciona elementos que nos ayudan a interactuar en este caso con controles de .NET, al ser una técnica propia de javascript presenta flexibilidad ante aplicaciones y requerimientos.

Durante el desarrollo de un proyecto empleando controles webform, me vi a la necesidad de implementar un calendario desplegable en un textbox para lo cual estuve investigando y documento la siguiente solución:

Primeramente dentro de nuestra aplicación con ayuda de la consola del instalador de paquetes NuGet descargaremos e instalaremos este elemento: Ajax Control Toolkit.

8

Administramos el paquete en nuestra solución:

9

Nótese que aún no se añaden los controles, para esto vamos a agregarlos directamente, tomando como referencia el path donde se encuentra la dll de los elementos:

Nuevamente dentro del toolbox damos clic derecho y navegamos a la ruta mostrada anteriormente (ruta de la dll) y agregamos los componentes:

Listo!, hasta aqui ya tenemos los elementos del Ajax toolkit en el toolbox de nuestro proyecto.

Ahora en el formulario donde vamos a desplegar el calendario añadimos del toolbox en la sección extensiones de ajax un control llamado script manager al cual le añadimos la siguiente propiedad:

 EnableScriptGlobalization = » true «

Es para configurar el calendario en español,  acto seguido añadimos el control llamado calendar extender donde también le asignamos una propiedad llamada TargetControlID:

<asp:CalendarExtender ID="CalendarExtender1" 
TargetControlID="NombreTextBox" 
runat="server"></asp:CalendarExtender>

 

Allí escribimos el nombre del textbox donde se va a desplegar el calendario, por último en la cabecera de nuestra página (.aspx) añadimos estas líneas como se visualiza en el ejemplo para informar al control el cambio de idioma.

<%@ Page Language="C#" AutoEventWireup="true" 
CodeFile="Tuarchivo.cs" Inherits="Tupagina.aspx" 
Culture="Auto" UICulture="Auto" %>

 

Resultado:

13

Nota: Si llegaras a presentar este error en tu aplicación:

«Only one instance of a ScriptManager can be added to the page.»

Es por que en tu página maestra ya existe un complemento de tipo ScriptManager activo, entonces no es necesario agregarlo solo en archivos empty o diferentes a control users.