Version: 1.1 | 2.0 |

DateTimePicker

in namespace DotVVM.BusinessPack.Controls

Renders a DateTimePicker control which lets the user either to type the date, or select it from a calendar popup.

Properties

Name Type Description Notes Default Value
AutoFocus Boolean Gets or sets whether the control should have focus when page loads or when a dialog is opened. The default value is false.
attribute
inner element
static value
bindable
default
False
ClosePopupOnSelectionComplete Boolean Gets or sets whether the popup should be hidden when the user completes the selection.
attribute
inner element
static value
bindable
default
True
Enabled Boolean Gets or sets whether the control is enabled and can be modified.
attribute
inner element
static value
bindable
default
False
FormatString String Gets or sets the format string that will be used to display the date.
attribute
inner element
static value
bindable
default
MaxDate DateTime? Gets or sets the highest date that can be selected by user.
attribute
inner element
static value
bindable
default
MinDate DateTime? Gets or sets the lowest date that can be selected by user.
attribute
inner element
static value
bindable
default
Mode CalendarViewMode Gets or sets whether you want the user to pick only date, only time, or both date and time.
attribute
inner element
static value
bindable
default
Month
Placeholder String Gets or sets the text displayed when the SelectedDate is empty.
attribute
inner element
static value
bindable
default
Restrictions IEnumerable<CalendarRestrictionBase> Gets or sets days a collection of rules specifying which date time intervals can't be selected.
attribute
inner element
static value
bindable
default
SelectedDate DateTime? Gets or sets the date selected by user.
attribute
inner element
static value
bindable
default
TabIndex Int32 Gets or sets the order in which the control is reachable in sequential keyboard navigation. The default value is 0 which means the document order.
attribute
inner element
static value
bindable
default
0
UseFormatStringAsPlaceholder Boolean Gets or sets whether to use FormatString as a placeholder when placeholder property is not set. It is enabled by default.
attribute
inner element
static value
bindable
default
True

Events

Name Type Description
SelectionCompleted Command Gets or sets the command that is called when the user successfully selects or unselects a value.

Usage & Scenarios

Renders a text field that allows the user to enter or select date and time using a Gregorian-style calendar popup.

HTML Rendered by the Control

Sample 1: Basic Usage

The SelectedDateTime property represents a DateTime value with a date selected in the control.

<bp:DateTimePicker SelectedDateTime="{value: SelectedDate}" />

<p>Selected date: <dot:Literal Text="{value: SelectedDate}" FormatString="g" /></p>
using System;
using DotVVM.Framework.ViewModel;

namespace DotvvmWeb.Views.Docs.Controls.businesspack.DateTimePicker.sample1
{
    public class ViewModel : DotvvmViewModelBase
    {
        public DateTime SelectedDate { get; set; } = DateTime.Now;
    }
}

Sample 2: Selection Bounds

You can use the MinDateTime and MaxDateTime properties to specify the minimum and maximum values for the selection.

<bp:DateTimePicker SelectedDateTime="{value: SelectedDate}"
                   MinDateTime="{value: MinimumDate}"
                   MaxDateTime="{value: MaximumDate}" />

<p>Selected date: <dot:Literal Text="{value: SelectedDate}" FormatString="g" /></p>
using System;
using DotVVM.Framework.ViewModel;

namespace DotvvmWeb.Views.Docs.Controls.businesspack.DateTimePicker.sample2
{
    public class ViewModel : DotvvmViewModelBase
    {
        public DateTime SelectedDate { get; set; } = DateTime.Now;
        public DateTime MinimumDate { get; set; } = DateTime.Now.AddDays(-5);
        public DateTime MaximumDate { get; set; } = DateTime.Now.AddDays(5);
    }
}

Sample 3: Restrictions

If you require more granular control over what dates can be selected, you can use the Restrictions property. We currently support the following types of restrictions:

  • DayOfWeekRestriction - Allows to disable selection of a specific day of week. You can also specify the time interval you need to disable using the StartTime and EndTime properties.
  • DateRangeRestriction - Allows to disable a secific range of dates (one day, one month, etc.). You just need to set the StartDate and EndDate properties.

Restrictions can be combined with MinDateTime and MaxDateTime properties and are verified both on client-side and server-side.

<bp:DateTimePicker SelectedDateTime="{value: SelectedDate}"
                   Restrictions="{value: Restrictions}" />

<p>Selected date: <dot:Literal Text="{value: SelectedDate}" FormatString="g" /></p>
using System;
using System.Collections.Generic;
using DotVVM.BusinessPack.Controls;
using DotVVM.Framework.ViewModel;

namespace DotvvmWeb.Views.Docs.Controls.businesspack.DateTimePicker.sample3
{
    public class ViewModel : DotvvmViewModelBase
    {
        public DateTime SelectedDate { get; set; } = DateTime.Now;

        public List<DateTimeRestriction> Restrictions { get; set; } = new List<DateTimeRestriction>()
        {
            new DayOfWeekRestriction() { DayOfWeek = DayOfWeek.Saturday },
            new DayOfWeekRestriction() { DayOfWeek = DayOfWeek.Sunday },
            new DateRangeRestriction() { StartDate = DateTime.MinValue, EndDate = DateTime.Now }
        };
    }
}

Sample 4: Show Inline

The 'ShowInline' property toggle whether the DateTimePicker is displayed inline in page or as a drop-down editor.

<%--<bp:DateTimePicker SelectedDateTime="{value: SelectedDate}"
                   ShowInline />

<p>Selected date: <dot:Literal Text="{value: SelectedDate}" FormatString="g" /></p>--%>
using System;
using DotVVM.Framework.ViewModel;

namespace DotvvmWeb.Views.Docs.Controls.businesspack.DateTimePicker.sample4
{
    public class ViewModel : DotvvmViewModelBase
    {
        public DateTime SelectedDate { get; set; } = DateTime.Now;
    }
}

Sample 5: Custom Icons

To customize the look of icons in the control, you can use the following inner elements:

  • ToggleIcon allows to customize the toggle icon. The default value is Calendar.

  • UnselectIcon allows to customize the unselect icon. The default value is Close.

  • PrevDateIcon allows to customize the icon displayed on the button navigating to previous page of date picker. The default value is ChevronLeft.

  • NextDateIcon allows to customize the icon displayed on the button navigating to next page of date picker. The default value is ChevronRight.

  • PrevTimeIcon allows to customize the icon displayed on the button navigating to previous page of time picker. The default value is ChevronUp.

  • NextTimeIcon allows to customize the icon displayed on the button navigating to next page of time picker. The default value is ChevronDown.

See the Icon documentation to find about using other icon packs.

<bp:DateTimePicker SelectedDateTime="{value: SelectedDate}">
    <ToggleIcon>
        <bp:Icon Icon="Calendar"></bp:Icon>
    </ToggleIcon>
    <UnselectIcon>
        <bp:Icon Icon="Close"></bp:Icon>
    </UnselectIcon>
    <PrevDateIcon>
        <bp:Icon Icon="ChevronLeft"></bp:Icon>
    </PrevDateIcon>
    <NextDateIcon>
        <bp:Icon Icon="ChevronRight"></bp:Icon>
    </NextDateIcon>
    <PrevTimeIcon>
        <bp:Icon Icon="ChevronUp"></bp:Icon>
    </PrevTimeIcon>
    <NextTimeIcon>
        <bp:Icon Icon="ChevronDown"></bp:Icon>
    </NextTimeIcon>
</bp:DateTimePicker>

<p>Selected date: <dot:Literal Text="{value: SelectedDate}" FormatString="g" /></p>
using System;
using DotVVM.Framework.ViewModel;

namespace DotvvmWeb.Views.Docs.Controls.businesspack.DateTimePicker.sample5
{
    public class ViewModel : DotvvmViewModelBase
    {
        public DateTime SelectedDate { get; set; } = DateTime.Now;
    }
}

Sample 6: Custom Texts

To customize the text displayed in the control, you can use the following properties:

  • HourText allows to customize the text displayed above a dial used to select hour. The default value is Hour.

  • MinuteText allows to customize the text displayed above a dial used to select minute. The default value is Minute.

  • SecondText allows to customize the text displayed above a dial used to select second. The default value is Second.

  • AmPmDesignatorText allows to customize the text displayed above a dial used to select AM / PM designator. The default value is AM/PM.

<bp:DateTimePicker SelectedDateTime="{value: SelectedDate}"
                   HourText="Hours"
                   MinuteText="Minutes"
                   SecondText="Seconds"
                   AmPmDesignatorText="AM/PM"/>

<p>Selected date: <dot:Literal Text="{value: SelectedDate}" FormatString="g" /></p>
using System;
using DotVVM.Framework.ViewModel;

namespace DotvvmWeb.Views.Docs.Controls.businesspack.DateTimePicker.sample6
{
    public class ViewModel : DotvvmViewModelBase
    {
        public DateTime SelectedDate { get; set; } = DateTime.Now;
    }
}

Suggestions


Help & Contribute

The documentation is maintained on GitHub.
We'll be happy if you edit the page and create a pull request.

Send message