2016-11-30 3 views

ответ

1

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

Если вы создаете экземпляр нового объекта 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. 
    } 
} 

В качестве альтернативы, вы можете создать field control, что делает тот же предмет.

1

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

+0

Спасибо, есть ли образец кода (просмотр содержимого), где это реализовано, на что я могу взглянуть? –

+0

проверьте режим просмотра полевых полей DatePicker (/Root/Global/fieldcontroltemplates/DatePicker/BrowseTemplate.ascx) –

Смежные вопросы