Настройка выбора года DateTimeDropdown

У меня есть регистрационная форма с типом заявки DateTimeDropdown, позволяющая пользователю выбрать дату своего рождения.

Это конфигурация политики утверждения:

<ClaimType Id="dateOfBirth">
    <DisplayName>Date of birth</DisplayName>
    <DataType>date</DataType>
    <UserHelpText>Please select your birth date</UserHelpText>
    <UserInputType>DateTimeDropdown</UserInputType>
</ClaimType>

И как это отображается на форме:

введите здесь описание изображения

Выбор Year дает диапазон, начинающийся с 1900 года и доходящий до 2050 года.

Существует ли какая-либо пользовательская конфигурация политики для изменения, ограничения или изменения порядка значений, присутствующих в этом раскрывающемся списке?


person nyoung    schedule 06.04.2018    source источник


Ответы (1)


Теперь это возможно с помощью PredicateValidations. См. диапазон дат

  1. С помощью элементов Predicates и PredicateValidations вы можете контролировать минимальное и максимальное значения даты для UserInputType с помощью DateTimeDropdown.

    <Predicates> <Predicate Id="DateRange" Method="IsDateRange" HelpText="The date must be between 01-01-1980 and today."> <Parameters> <Parameter Id="Minimum">1980-01-01</Parameter> <Parameter Id="Maximum">Today</Parameter> </Parameters> </Predicate> </Predicates>

    1. Добавьте PredicateValidation со ссылкой на предикат DateRange.

      <PredicateValidations> <PredicateValidation Id="CustomDateRange"> <PredicateGroups> <PredicateGroup Id="DateRangeGroup"> <PredicateReferences> <PredicateReference Id="DateRange" /> </PredicateReferences> </PredicateGroup> </PredicateGroups> </PredicateValidation> </PredicateValidations>

    2. В свой тип утверждения добавьте элемент PredicateValidationReference и укажите идентификатор CustomDateRange.

    <ClaimType Id="dateOfBirth"> <DisplayName>Date of Birth</DisplayName> <DataType>date</DataType> <AdminHelpText>The user's date of birth.</AdminHelpText> <UserHelpText>Your date of birth.</UserHelpText> <UserInputType>DateTimeDropdown</UserInputType> <PredicateValidationReference Id="CustomDateRange" /> </ClaimType>

person FelisiaM    schedule 26.09.2018
comment
Было бы неплохо иметь здесь поддержку <Parameter Id="Maximum">Today.AddYears(-18)</Parameter>! - person felickz; 06.03.2021