El componente Ignite UI for Blazor Calendar es liviano y fácil de configurar. Se utiliza para mostrar fechas y días de la semana. También es la mejor manera de proporcionar vistas mensuales o anuales a los usuarios finales. El control Ignite UI for Blazor Calendar le permite restringir los rangos de fechas mínimos y máximos por los que las personas pueden navegar.
La Ignite UI Ignite UI for Blazor Calendar ofrece una forma sencilla e intuitiva de mostrar información sobre fechas. Incluye distintas funciones, como modos de selección de una o varias fechas, resaltar y seleccionar un rango de fechas, navegación con teclado, habilitación de números de semana, opciones de tamaño y espaciado, y más.
Blazor Calendar Example
En el siguiente ejemplo de componente Blazor IgbCalendar se muestra un calendario básico con un modo de selección de un solo día. Vea cómo funciona o inspeccione el código que hay detrás.
EXAMPLE
MODULES
RAZOR
CSS
using System;
using System.Net.Http;
using System.Collections.Generic;
using System.Threading.Tasks;
using System.Text;
using Microsoft.AspNetCore.Components.WebAssembly.Hosting;
using Microsoft.Extensions.Configuration;
using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.Logging;
using IgniteUI.Blazor.Controls; // for registering Ignite UI modulesnamespaceInfragistics.Samples
{
publicclassProgram
{
publicstaticasync Task Main(string[] args)
{
var builder = WebAssemblyHostBuilder.CreateDefault(args);
builder.RootComponents.Add<App>("app");
builder.Services.AddScoped(sp => new HttpClient { BaseAddress = new Uri(builder.HostEnvironment.BaseAddress) });
// registering Ignite UI modules
builder.Services.AddIgniteUIBlazor(
typeof(IgbInputModule),
typeof(IgbPropertyEditorPanelModule),
typeof(IgbCalendarModule)
);
await builder.Build().RunAsync();
}
}
}cs
Antes de utilizar IgbCalendar, debe registrarlo de la siguiente manera:
// in Program.cs file
builder.Services.AddIgniteUIBlazor(typeof(IgbCalendarModule));
razor
También deberá vincular un archivo CSS adicional para aplicar el estilo al componente Ignite UI for Blazor IgbCalendar. Lo siguiente debe colocarse en el archivo wwwroot/index.html de un proyecto de Blazor Web Assembly o en el archivo Pages/_Host.cshtml de un proyecto de Blazor Server:
Para obtener una introducción completa a la Ignite UI for Blazor, lea el tema Primeros pasos.
La forma más sencilla de empezar a utilizar el Ignite UI for Blazor IgbCalendar es la siguiente:
<IgbCalendar />razor
Selection Modes
Los usuarios pueden elegir entre tres modos de selección diferentes: selección única, selección múltiple o selección de rango. De forma predeterminada, el Ignite UI for Blazor IgbCalendar utiliza el modo de selección única, pero puede cambiarlo estableciendo la Selection propiedad como se muestra en este ejemplo.
using System;
using System.Net.Http;
using System.Collections.Generic;
using System.Threading.Tasks;
using System.Text;
using Microsoft.AspNetCore.Components.WebAssembly.Hosting;
using Microsoft.Extensions.Configuration;
using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.Logging;
using IgniteUI.Blazor.Controls; // for registering Ignite UI modulesnamespaceInfragistics.Samples
{
publicclassProgram
{
publicstaticasync Task Main(string[] args)
{
var builder = WebAssemblyHostBuilder.CreateDefault(args);
builder.RootComponents.Add<App>("app");
builder.Services.AddScoped(sp => new HttpClient { BaseAddress = new Uri(builder.HostEnvironment.BaseAddress) });
// registering Ignite UI modules
builder.Services.AddIgniteUIBlazor(
typeof(IgbInputModule),
typeof(IgbPropertyEditorPanelModule),
typeof(IgbCalendarModule)
);
await builder.Build().RunAsync();
}
}
}cs
using System;
using System.Net.Http;
using System.Collections.Generic;
using System.Threading.Tasks;
using System.Text;
using Microsoft.AspNetCore.Components.WebAssembly.Hosting;
using Microsoft.Extensions.Configuration;
using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.Logging;
using IgniteUI.Blazor.Controls; // for registering Ignite UI modulesnamespaceInfragistics.Samples
{
publicclassProgram
{
publicstaticasync Task Main(string[] args)
{
var builder = WebAssemblyHostBuilder.CreateDefault(args);
builder.RootComponents.Add<App>("app");
builder.Services.AddScoped(sp => new HttpClient { BaseAddress = new Uri(builder.HostEnvironment.BaseAddress) });
// registering Ignite UI modules
builder.Services.AddIgniteUIBlazor(
typeof(IgbInputModule),
typeof(IgbPropertyEditorPanelModule),
typeof(IgbCalendarModule)
);
await builder.Build().RunAsync();
}
}
}cs
/*
CSS styles are loaded from the shared CSS file located at:
https://static.infragistics.com/xplatform/css/samples/
*/css
Active View and Date
El componente Calendario Ignite UI for Blazor le permite cambiar entre tres vistas diferentes: días, meses y años. La ActiveView propiedad del componente refleja la vista actual. De forma predeterminada, el calendario muestra la fecha actual cuando se carga inicialmente. Puede modificar esto estableciendo la ActiveDate propiedad. La ActiveDate propiedad también refleja los cambios de la fecha actualmente visible realizados por el usuario final.
Week numbers
Puede utilizar la propiedad ShowWeekNumbers para mostrar los números de semana del componente Calendario. Puedes hacer esto usando su atributo booleano correspondiente show-week-numbers como este:
<IgbCalendarShowWeekNumbers="true" />razor
La siguiente demostración ilustra un Calendario con números de semana habilitados:
EXAMPLE
MODULES
RAZOR
CSS
using System;
using System.Net.Http;
using System.Collections.Generic;
using System.Threading.Tasks;
using System.Text;
using Microsoft.AspNetCore.Components.WebAssembly.Hosting;
using Microsoft.Extensions.Configuration;
using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.Logging;
using IgniteUI.Blazor.Controls; // for registering Ignite UI modulesnamespaceInfragistics.Samples
{
publicclassProgram
{
publicstaticasync Task Main(string[] args)
{
var builder = WebAssemblyHostBuilder.CreateDefault(args);
builder.RootComponents.Add<App>("app");
builder.Services.AddScoped(sp => new HttpClient { BaseAddress = new Uri(builder.HostEnvironment.BaseAddress) });
// registering Ignite UI modules
builder.Services.AddIgniteUIBlazor(
typeof(IgbInputModule),
typeof(IgbPropertyEditorPanelModule),
typeof(IgbCalendarModule)
);
await builder.Build().RunAsync();
}
}
}cs
/*
CSS styles are loaded from the shared CSS file located at:
https://static.infragistics.com/xplatform/css/samples/
*/css
Multiple Months
Con la propiedad VisibleMonths, puede mostrar más de un mes cuando el Calendario está en vista days. Cuando se muestran varios meses, puede configurar si desea apilarlos vertical u horizontalmente utilizando la propiedad Orientation. De forma predeterminada, la propiedad Orientation está establecida en horizontal.
El Calendario muestra las fechas iniciales y finales del mes anterior y siguiente. Puede ocultar estas fechas estableciendo la propiedad HideOutsideDays en verdadero o usando su atributo booleano correspondiente HideOutsideDays.
El siguiente ejemplo demuestra la configuración de varios meses:
EXAMPLE
MODULES
RAZOR
CSS
using System;
using System.Net.Http;
using System.Collections.Generic;
using System.Threading.Tasks;
using System.Text;
using Microsoft.AspNetCore.Components.WebAssembly.Hosting;
using Microsoft.Extensions.Configuration;
using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.Logging;
using IgniteUI.Blazor.Controls; // for registering Ignite UI modulesnamespaceInfragistics.Samples
{
publicclassProgram
{
publicstaticasync Task Main(string[] args)
{
var builder = WebAssemblyHostBuilder.CreateDefault(args);
builder.RootComponents.Add<App>("app");
builder.Services.AddScoped(sp => new HttpClient { BaseAddress = new Uri(builder.HostEnvironment.BaseAddress) });
// registering Ignite UI modules
builder.Services.AddIgniteUIBlazor(
typeof(IgbInputModule),
typeof(IgbPropertyEditorPanelModule),
typeof(IgbCalendarModule)
);
await builder.Build().RunAsync();
}
}
}cs
/*
CSS styles are loaded from the shared CSS file located at:
https://static.infragistics.com/xplatform/css/samples/
*/css
Tamaño
Puede controlar el tamaño y el espaciado de los elementos internos del calendario utilizando la variable CSS--ig-size. El tamaño predeterminado del componente es grande.
EXAMPLE
MODULES
RAZOR
CSS
using System;
using System.Net.Http;
using System.Collections.Generic;
using System.Threading.Tasks;
using System.Text;
using Microsoft.AspNetCore.Components.WebAssembly.Hosting;
using Microsoft.Extensions.Configuration;
using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.Logging;
using IgniteUI.Blazor.Controls; // for registering Ignite UI modulesnamespaceInfragistics.Samples
{
publicclassProgram
{
publicstaticasync Task Main(string[] args)
{
var builder = WebAssemblyHostBuilder.CreateDefault(args);
builder.RootComponents.Add<App>("app");
builder.Services.AddScoped(sp => new HttpClient { BaseAddress = new Uri(builder.HostEnvironment.BaseAddress) });
// registering Ignite UI modules
builder.Services.AddIgniteUIBlazor(
typeof(IgbInputModule),
typeof(IgbPropertyEditorPanelModule),
typeof(IgbCalendarModule)
);
await builder.Build().RunAsync();
}
}
}cs
Cuando se enfoca un día/mes/año en el componente IgbCalendar, use:
Tecla Re Pág para pasar a la página del mes/año/año anterior.
Tecla AvPág para pasar a la página del mes/año/año siguiente.
Tecla de inicio para enfocar el primer día del mes actual/primer mes a la vista/primer año a la vista.
Tecla Fin para enfocar el último día del mes actual/último mes visto/último año visto.
Teclas de flecha para navegar por los días/meses/años. Navegar antes del primer elemento y después del último elemento cambiará la vista a la página del mes/año/año siguiente/anterior.
Cuando un día dentro de la vista days esté enfocado, use:
Teclas Shift + Re Pág para pasar al año anterior.
Teclas Shift + Av Pág para pasar al año siguiente.
Tecla Espacio o Intro para seleccionar el día enfocado actualmente.
Cuando se enfoca un mes dentro de la vista months, use:
Tecla Espacio o Intro para cambiar ActiveDate al mes actualmente enfocado y cambiar a la vista days.
Cuando se enfoca un año dentro de la vista years, use:
Tecla Espacio o Intro para cambiar ActiveDate al año actualmente enfocado y cambiar a la vista months.
Cuando los botones anterior o siguiente (en el subtítulo) estén enfocados, use:
Tecla Espacio o Intro para cambiar a la página del mes/año/año anterior/siguiente.
Cuando el botón del mes (en el subtítulo) esté enfocado, use:
Tecla Espacio o Intro para cambiar a la vista months.
Cuando el botón del año (en el subtítulo) esté enfocado, use:
Tecla Espacio o Intro para cambiar a la vista years.
Styling
El IgbCalendar componente expone partes CSS para casi todos sus elementos internos. En la tabla siguiente se enumeran todas las partes CSS expuestas:
Nombre
Descripción
header
El elemento de encabezado.
header-title
El elemento del título del encabezado.
header-date
El elemento de fecha del encabezado.
content
El elemento de contenido que contiene las vistas y los elementos de navegación.
navigation
El elemento contenedor de navegación.
months-navigation
El elemento del botón de navegación de meses.
years-navigation
El elemento del botón de navegación de años.
years-range
El elemento de rango de años.
navigation-buttons
El contenedor de botones de navegación.
navigation-button
Botón de navegación anterior/siguiente.
days-view-container
El elemento contenedor de vista de días.
days-view
Elemento de vista de días.
months-view
El elemento de vista de meses.
years-view
El elemento de vista de años.
days-row
Elemento de fila de días.
label
Elemento de etiqueta de encabezado de semana.
week-number
Elemento de número de semana.
week-number-inner
Elemento interior del número de semana.
date
Elemento de fecha.
date-inner
Elemento interior de fecha.
first
El primer elemento de fecha seleccionado.
last
El último elemento de fecha seleccionado.
inactive
Elemento de fecha inactivo.
hidden
Elemento de fecha oculto.
weekend
Elemento de fecha de fin de semana.
range
Rango del elemento seleccionado.
special
Elemento de fecha especial.
disabled
Elemento de fecha deshabilitado.
single
Elemento de fecha único seleccionado.
preview
Elemento de fecha de vista previa de selección de rango.
month
Elemento mes.
month-inner
Elemento interior del mes.
year
Elemento año.
year-inner
Elemento interior del año.
selected
Indica el estado seleccionado. Se aplica a los elementos de fecha, mes y año.
current
Indica el estado actual. Se aplica a los elementos de fecha, mes y año.
Usando estas partes CSS podemos personalizar la apariencia del componente de la IgbCalendar siguiente manera:
El siguiente ejemplo demuestra la configuración CSS anterior:
EXAMPLE
MODULES
RAZOR
CalendarStyling.css
index.css
using System;
using System.Net.Http;
using System.Collections.Generic;
using System.Threading.Tasks;
using System.Text;
using Microsoft.AspNetCore.Components.WebAssembly.Hosting;
using Microsoft.Extensions.Configuration;
using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.Logging;
using IgniteUI.Blazor.Controls; // for registering Ignite UI modulesnamespaceInfragistics.Samples
{
publicclassProgram
{
publicstaticasync Task Main(string[] args)
{
var builder = WebAssemblyHostBuilder.CreateDefault(args);
builder.RootComponents.Add<App>("app");
builder.Services.AddScoped(sp => new HttpClient { BaseAddress = new Uri(builder.HostEnvironment.BaseAddress) });
// registering Ignite UI modules
builder.Services.AddIgniteUIBlazor(
typeof(IgbInputModule),
typeof(IgbPropertyEditorPanelModule),
typeof(IgbCalendarModule)
);
await builder.Build().RunAsync();
}
}
}cs