SPContext 类
表示Microsoft SharePoint Foundation中的 HTTP 请求的上下文。
继承层次结构
System.Object
Microsoft.SharePoint.SPContext
命名空间: Microsoft.SharePoint
程序集: Microsoft.SharePoint(位于 Microsoft.SharePoint.dll 中)
语法
声明
Public NotInheritable Class SPContext
用法
Dim instance As SPContext
public sealed class SPContext
备注
使用SPContext类可以返回有关一些对象,如当前 Web 应用程序、 站点集合、 站点、 列表或列表项的上下文信息。
示例
下面的示例阐释了如何使用SPContext类的属性来返回当前列表、 网站和网站集。
Dim currentList As SPList = SPContext.Current.List
Dim currentSite As SPWeb = SPContext.Current.Web
Dim currentSiteCollection As SPSite = SPContext.Current.Site
Dim currentWebApplication As SPWebApplication = SPContext.Current.Site.WebApplication
[C#]
SPList oListCur = SPContext.Current.List;
SPWeb oWeb = SPContext.Current.Web;
SPSite oSite = SPContext.Current.Site;
SPWebApplication oWebApplicationCur = SPContext.Current.Site.WebApplication;
将Item属性的值强制转换为SPListItem对象返回的当前的列表项,如下所示:
SPListItem item = (SPListItem)SPContext.Current.Item;
下面的示例使用SPContext属性以打开在当前网站集中的网站并返回当前用户。
Dim site As SPWeb = SPContext.Current.Site.OpenWeb(guid)
Dim user As SPUser = SPContext.Current.Web.CurrentUser
[C#]
using(SPWeb oWeb = SPContext.Current.Site.OpenWeb(guidWebsite))
{
SPUser oUser = SPContext.Current.Web.CurrentUser;
}
下一个示例使用SPContext类情况下,项 Id 大于 100 的当前站点上执行查询。它将结果写入服务器上的文件中。此示例要求using指令 (在 Visual Basic 中的Imports ) 的System.Data和Microsoft.SharePoint的命名空间。
Dim siteQuery As New SPSiteDataQuery()
siteQuery.Query = "<Where><Gt><FieldRef Name=""ID"" />" + "<Value Type = ""Number"">100</Value></Gt></Where>"
siteQuery.ViewFields = "<FieldRef Name=""Title""/>"
Dim queryResults As DataTable = SPContext.Current.Web.GetSiteData(siteQuery)
queryResults.TableName = "queryTable"
queryResults.WriteXml("C:\queryTable.xml")
[C#]
SPSiteDataQuery oSiteQuery = new SPSiteDataQuery();
oSiteQuery.Query = "<Where><Gt><FieldRef Name=\"ID\" />" +
"<Value Type = \"Number\">100</Value></Gt></Where>";
oSiteQuery.ViewFields = "<FieldRef Name=\"Title\"/>";
DataTable oQueryResults = SPContext.Current.Web.GetSiteData(oSiteQuery);
oQueryResults.TableName = "queryTable";
oQueryResults.WriteXml("C:\\queryTable.xml");
前面的示例实例化一个SPSiteDataQuery对象,并将Collaborative Application Markup Language (CAML)中的字符串赋给它的Query属性。此字符串定义查询 (见Query Schema)。**GetSiteData()**方法返回一个System.Data.DataTable对象,该对象的内容作为一个 XML 文件。
线程安全性
该类型的任何公共 静态 (已共享 在 Visual Basic 中) 成员都是线程安全的。不保证任何实例成员都是线程安全的。