Sensenet 日期时间字段默认值
Sensenet DateTime Field Default Value
当日期时间字段留空时,Sensenet 在内容浏览模式中显示(系统默认)'01/01/01 12:00'。不是用户输入的,能不显示值吗?
日期时间字段的默认值不能为空,因此如果您想在浏览视图中隐藏它,您可以使用脚本来检查日期时间值,如果它包含 01/01/01,您只需 remove/hide它在浏览器中带有js。有一个用于格式化日期的辅助函数 (SN.Util.js 'setFriendlyLocalDate'),它也使用默认值处理此问题。
您也可以在内容处理程序中使用服务器端代码解决此问题。
如果您实例化一个新的 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>
然后在您的内容处理程序中,您创建一个只读 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 来做同样的事情。
当日期时间字段留空时,Sensenet 在内容浏览模式中显示(系统默认)'01/01/01 12:00'。不是用户输入的,能不显示值吗?
日期时间字段的默认值不能为空,因此如果您想在浏览视图中隐藏它,您可以使用脚本来检查日期时间值,如果它包含 01/01/01,您只需 remove/hide它在浏览器中带有js。有一个用于格式化日期的辅助函数 (SN.Util.js 'setFriendlyLocalDate'),它也使用默认值处理此问题。
您也可以在内容处理程序中使用服务器端代码解决此问题。
如果您实例化一个新的 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>
然后在您的内容处理程序中,您创建一个只读 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 来做同样的事情。