2016-11-30 140 views

回答

1

您也可以在內容處理程序中使用服務器端代碼解決此問題。

如果您實例化新的DateTime對象,則其默認值爲1/1/0001 12:00:00 AM,也指定爲DateTime.MinValueDateTime.MaxValue12/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> 

然後在你的內容處理程序,您可以創建一個只讀的getter顯示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 fieldcontrols瀏覽模式(/Root/Global/fieldcontroltemplates/DatePicker/BrowseTemplate.ascx) –