Значение по умолчанию в поле Sensenet DateTime

Когда поле DateTime оставлено пустым, Sensenet отображает (по умолчанию система) "01/01/01 12:00" в режиме просмотра содержимого. Может ли оно отображать значение, поскольку оно не было введено пользователями?

2 ответа

Решение

Вы также можете решить эту проблему с помощью кода на стороне сервера в вашем обработчике контента.

Если вы создаете новый DateTime объект его значение по умолчанию 1/1/0001 12:00:00 AMтакже указано как DateTime.MinValue, DateTime.MaxValue является 12/31/9999 11:59:59 PM, Затем вы проверяете DateTime.MinValue на форматирование адреса.

Если у вас есть контент, в котором вы будете много форматировать и отображать даты, в вашем определении типа контента (CTD) часто проще определить строковое поле, соответствующее полю даты. Например, ваш CTD может иметь такие поля:

<Field name="ReviewDate" type="DateTime" >
  <DisplayName>Review Date</DisplayName>
</Field>

<Field name="ReviewDateStr" type="ShortText" >
  <DisplayName>Review Date</DisplayName>
</Field>

Затем в обработчике контента вы создаете метод чтения только для чтения для отображения ReviewDate:

private const string REVIEWDATESTRPROPERTY = "ReviewDateStr";
[RepositoryProperty(REVIEWDATESTRPROPERTY, RepositoryDataType.String)]
public virtual string ReviewDateStr
{
    get
    {
        if (ReviewDate == DateTime.MinValue)
        {
            return "n/a";      // Default string if date is not set.
        }
        return ReviewDate.ToString();   // Add date formatting here.
    }
}

Кроме того, вы можете создать элемент управления поля, который делает то же самое.

Значение по умолчанию для поля DateTime не может быть пустым, поэтому, если вы хотите скрыть его в представлении "Обзор", вы можете использовать скрипт для проверки значений даты и времени, а если оно содержит 01.01.01, вы можете просто удалить / скрыть его с помощью js в браузере. Есть вспомогательная функция для форматирования дат (SN.Util.js 'setFriendlyLocalDate'), которая обрабатывает эту проблему со значением по умолчанию.

Другие вопросы по тегам