SharePoint上下文——SPContext

作者:柒月

在SharePoint项目开发过程中,SPContext给我们提供了很多的便利。我们常用SPContext.Current.Web来获取当前SPWeb对象,以及隐藏在SPWeb之下的各种信息。但也别忽略了,SPContext中还有一些其他有意思的属性,合理利用好它们,等于走了捷径。:)

注意事项

  • EventReceiver和TimerJob中,SPContext.Current为null
  • 使用SPFarm管理员登录时,SPContext.Current.Web.CurrentUser为系统账户(SHAREPOINT\system),此时用HttpContext.Current.User.Identity.Name可获得当前登录名

常用属性

属性 应用场景
SPSite 获取当前网站集对象
SPSite.RootWeb:获取当前网站集的根网站
SPWeb 获取当前Web对象
SPWeb.CurrentUser:获取当前登录SPUser对象
ViewContext 在列表视图页面时,可获取SPViewContext对象
ViewContext.View.ViewFields:获取当前视图下的所有字段
SPListItem 在列表项的新增、修改、查看页面时,可以获取当前SPListItem对象
SPListItem[fieldName]:访问或赋值列表项字段
SPListItem.Update():更新列表项
SPFile 若当前页面是页面库下的页面,则将当前页面作为SPFile对象返回
SPFile.ServerRelativeUrl:当前页面文件的相对路径
SPFile.Publish(comments):发布当前页面
FormContext 在列表项的新增、修改、查看页面时,可以获取当前SPFormContext对象
FormContext.FieldControlCollection:获取当前表单上的字段集合
可以围观一下Jianyi大神怎么玩的

参考:SharePoint开发中可能用到的各种Context(上下文)

WSS页面定制系列(3)---重写表单的保存逻辑