2016-11-30 2 views

答えて

1

また、コンテンツハンドラのサーバーサイドコードでこれを解決することもできます。

新しいDateTimeオブジェクトをインスタンス化すると、そのデフォルト値は1/1/0001 12:00:00 AMであり、DateTime.MinValueとも指定されています。 DateTime.MaxValue12/31/9999 11:59:59 PMです。その後、書式設定にアドレスするためにDateTime.MinValueをテストします。

日付を書式設定して表示するコンテンツがある場合は、日付型フィールドに対応する文字列フィールドを定義することがコンテンツタイプ定義(CTD)でより簡単になります。たとえば、あなたのCTDはこのようなフィールドを持つことができ:

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を作成することができます:あなたのコンテンツハンドラで次に

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

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

を、あなただけのREVIEWDATEを表示するためにゲッター読ん作成します同じことをします。

1

DateTimeフィールドのデフォルト値を空白にすることはできません。そのため、ブラウズビューで非表示にするには、スクリプトを使用して日時の値をチェックし、01/01/01が含まれている場合は、ブラウザに表示されます。この問題を既定値で処理する日付(SN.Util.js 'setFriendlyLocalDate')の書式設定ヘルパ関数もあります。

+0

ありがとう、私は見てみることができるこれが実装されているいくつかのコードサンプル(コンテンツビュー)はありますか? –

+0

DatePickerフィールドコントロールブラウズモード(/Root/Global/fieldcontroltemplates/DatePicker/BrowseTemplate.ascx)を確認します。 –

関連する問題