我正在制作自定义SharePoint列表 . 我需要一个TimeStamp字段,但默认情况下唯一可用的类型是DateTime .
有帮助吗?
我在Sharepoint 2010中遇到了同样的问题并解决了它 . 发布以防其他人发现这个有用:)
要实现这一点,必须使用“计算”的columntype .
From GUI:
创建新列
选择类型"Calculated" .
选择"Created"列并添加到公式 .
保存 .
From code:
据我所知,有两种方法可以做到这一点:
访问“已创建”并将其ShowInDisplayForm属性设置为true或将列添加到视图(例如DefaultView) .
创建一个指向“已创建”列的计算列,就像GUI示例一样 . 诀窍是设置“公式”和“OutputType”属性 .
SPSecurity.RunWithElevatedPrivileges(delegate() { using (SPSite site = new SPSite(siteUrl)) { using (SPWeb web = site.RootWeb) { SPList list = web.Lists["test"]; string fieldName = list.Fields.Add("Timestamptest", SPFieldType.Calculated, false); SPFieldCalculated field = list.Fields[fieldName] as SPFieldCalculated; field.Formula = "=Created"; field.OutputType = SPFieldType.DateTime; field.ShowInEditForm = false; field.Update(); list.Update(); SPView defaultView = list.DefaultView; defaultView.ViewFields.Add(field); defaultView.Update(); } } });
我认为您需要创建自定义字段类型,以便您可以控制DateTime类型的显示和验证等 - 有关详细信息,请参阅this blog post
2 回答
我在Sharepoint 2010中遇到了同样的问题并解决了它 . 发布以防其他人发现这个有用:)
要实现这一点,必须使用“计算”的columntype .
From GUI:
创建新列
选择类型"Calculated" .
选择"Created"列并添加到公式 .
保存 .
From code:
据我所知,有两种方法可以做到这一点:
访问“已创建”并将其ShowInDisplayForm属性设置为true或将列添加到视图(例如DefaultView) .
创建一个指向“已创建”列的计算列,就像GUI示例一样 . 诀窍是设置“公式”和“OutputType”属性 .
我认为您需要创建自定义字段类型,以便您可以控制DateTime类型的显示和验证等 - 有关详细信息,请参阅this blog post