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大神怎么玩的 |