在上一篇文章SPServices介绍之一中,简单介绍了SPServices以及如何将它添加到SharePoint的项目中,这篇文章继续介绍一下SPSevices提供的基本方法。
这些基本的方法可以到SPServices的主页中查找:点击打开链接
核心对象$().SPServices
对象$().SPServices是SPServices库的核心对象,绝大多数的方法调用都需要使用这个对象,例如
获取当前站点的url的方法SPGetCurrentSite:
- $().SPServices.SPGetCurrentSite();
获取当前登录用户的信息的方法SPGetCurrentUser:
语法:
- $().SPServices.SPGetCurrentUser{(
- webURL: "",<span style="white-space:pre"> </span>
- fieldName: "Name",
- fieldNames:[],
- debug:false
- });
一个例子:
- $().SPServices.SPGetCurrentUser({fieldNames: ["Name", "Title", "EMail"], debug:false});
这个方法通过Ajax调用获取用户信息列表中的信息(/_layouts/userdisp.aspx)。我们可以在fieldNames中指定读取的column名字,其中Name是Account名(对应Account列),Title是用户名(对应Name列),Email是邮箱名(对应Work email列),如果对于用户Andy Lee,他的用户信息是:

那么调用SPGetCurrentUser方法之后获取的信息是:

获取列表中的最后一个item的ID的方法SPGetLastItemId
语法:
- $().SPServices.SPGetLastItemId({
- webURL: "",
- listName: "",
- userAccount: "",
- CAMLQuery: ""
- });
一个例子:
- $().SPServices.SPGetLastItemId({
- listName:"Tasks"
- });
将返回Tasks列表中最后一个创建的item的id。
根据column的static name获取display name的方法SPGetDisplayFromStatic
语法
- var thisDisplayName = $().SPServices.SPGetDisplayFromStatic ({
- webURL: "",
- listName: "",
- columnStaticName: "",
- columnStaticNames: []
- });
一个例子,获取Tasks列表中的Title列的display name:
- var titleDisplayName = $().SPServices.SPGetDisplayFromStatic ({
- listName: "Tasks",
- columnStaticName: "Title"
- });
获取Tasks列表中的Title和Status列的display name:
- var displayNames = $().SPServices.SPGetDisplayFromStatic ({
- listName: "Tasks",
- columnStaticNames: {"Title", "ContentType"}
- });
根据column的display name获取static name的方法SPGetStaticFromDisplay与上一个方法相反,这个方法根据display name获取column的static name。
语法:
- var thisStaticName = $().SPServices.SPGetStaticFromDisplay ({
- webURL: "",
- listName: "",
- columnDisplayName: "",
- columnDisplayNames: []
- });
仅举一个例子:
- var staticNames = $().SPServices.SPGetStaticFromDisplay({
- listName: "Tasks",
- columnDisplayNames: ["Task Name", "Content Type"]
- });
可以通过staticNames["Task Name"]来获取Task Name列对应的static name。
获取查询字符串的方法SPGetQueryString
用来获取url中的查询字符串的参数值,例如页面url是“http://servername/sitename/Lists/MyList/NewForm.aspx?ID=10”,那么可以使用以下方式获取参数ID的值:
- var queryString = $().SPServices.SPGetQueryString();
- var itemId = queryString["ID"];
- 或者
- var itemId = queryString.ID
获取当前列表ID的方法SPListNameFromUrl
在列表的上下文中,从Url中获取列表的ID。
- var listId = $().SPServices.SPListNameFromUrl()
将日期转换为ISO格式的方法SPConvertDateToISO
语法:
- $().SPServices.SPConvertDateToISO({
- dateToConvert: new Date(),
- dateOffset: "-05:00"
- });
一个例子:
- var currentISO = $().SPServices.SPConvertDateToISO();
以下是这篇文章的示例代码:
- <script type="text/javascript">
- $(document).ready(function () {
- $("#output").append("<div>-----------Start SPGetCurrentSite----------</div>");
- var currentSiteUrl = $().SPServices.SPGetCurrentSite();
- $("#output").append("<div>Current Site Url: " + currentSiteUrl + "</div>");
- $("#output").append("<div>-----------End SPGetCurrentSite----------</div>");
-
- $("#output").append("<div>-----------Start SPGetCurrentUser----------</div>");
- var currentUser = $().SPServices.SPGetCurrentUser({fieldNames: ["Name", "Title", "EMail"], debug:false});
- $("#output").append("<div>Current User Account Name: " + currentUser.Name + "</div>");
- $("#output").append("<div>Current User Name: " + currentUser.Title + "</div>");
- $("#output").append("<div>Current User Email: " + currentUser.EMail + "</div>");
- $("#output").append("<div>-----------End SPGetCurrentUser----------</div>");
-
- $("#output").append("<div>-----------Start SPGetLastItemId----------</div>");
- var lastItemId = $().SPServices.SPGetLastItemId({ listName: "Tasks" });
- $("#output").append("<div>Last Item Id in Tasks List: " + lastItemId + "</div>");
- $("#output").append("<div>-----------End SPGetLastItemId----------</div>");
-
- $("#output").append("<div>-----------Start SPGetDisplayFromStatic----------</div>");
- var titleDisplayName = $().SPServices.SPGetDisplayFromStatic({
- listName: "Tasks",
- columnStaticName: "Title"
- });
- $("#output").append("<div>Display Name of Title Column: " + titleDisplayName + "</div>");
- var displayNames = $().SPServices.SPGetDisplayFromStatic ({
- listName: "Tasks",
- columnStaticNames: ["Title", "ContentType"]
- });
- $("#output").append("<div>Display Name of Title Column: " + displayNames.Title + "</div>");
- $("#output").append("<div>Display Name of ContentType Column: " + displayNames.ContentType + "</div>");
- $("#output").append("<div>-----------End SPGetDisplayFromStatic----------</div>");
-
- $("#output").append("<div>-----------Start SPGetStaticFromDisplay----------</div>");
- var staticNames = $().SPServices.SPGetStaticFromDisplay({
- listName: "Tasks",
- columnDisplayNames: ["Task Name", "Content Type"]
- });
- $("#output").append("<div>Static Name of Task Name Column: " + staticNames["Task Name"] + "</div>");
- $("#output").append("<div>Static Name of Content Type Column: " + staticNames["Content Type"] + "</div>");
- $("#output").append("<div>-----------End SPGetStaticFromDisplay----------</div>");
-
- $("#output").append("<div>-----------Start SPConvertDateToISO----------</div>");
- var currentISO = $().SPServices.SPConvertDateToISO()
- $("#output").append("<div>Current ISO time: " + currentISO + "</div>");
- $("#output").append("<div>-----------End SPConvertDateToISO----------</div>");
- });
- </script>