SPServices介绍之二:基本方法调用
分类: SPSerivces2014-09-21 04:20 253人阅读 评论(0) 收藏 举报
在上一篇文章SPServices介绍之一中,简单介绍了SPServices以及如何将它添加到SharePoint的项目中,这篇文章继续介绍一下SPSevices提供的基本方法。
这些基本的方法可以到SPServices的主页中查找:点击打开链接
核心对象$().SPServices
对象$().SPServices是SPServices库的核心对象,绝大多数的方法调用都需要使用这个对象,例如
获取当前站点的url的方法SPGetCurrentSite:
[javascript] view plaincopy
- $().SPServices.SPGetCurrentSite();
获取当前登录用户的信息的方法SPGetCurrentUser:
语法:
[javascript] view plaincopy
- $().SPServices.SPGetCurrentUser{(
- webURL: "",<span style="white-space:pre"> </span>//站点url,默认是当前站点url
- fieldName: "Name", //用户信息列表中的列名
- fieldNames:[], //用户信息列表中的列名数组
- debug:false //是否开启debug模式,如果开启,调用出错时显示debug信息
- });
一个例子:
[javascript] view plaincopy
- $().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
语法:
[javascript] view plaincopy
- $().SPServices.SPGetLastItemId({
- webURL: "", //列表所在站点的url,默认是当前站点url,可以使用相对url例如 "/", "/Departments/HR"
- listName: "", //列表的名字或者GUID, 如果是GUID,应该使用"{9CC9DF10-E677-4A59-8FBE-B622F9598CFE}"这种形式
- userAccount: "", //指定用户,接受"domain\username"这种形式,默认使用当前用户
- CAMLQuery: "" //指定一个CAML查询,形如"<Eq><FieldRef Name=‘Status‘/><Value Type=‘Text‘>Avtive</Value></Eq>"
- });
一个例子:
[javascript] view plaincopy
- $().SPServices.SPGetLastItemId({
- listName:"Tasks"
- });
将返回Tasks列表中最后一个创建的item的id。
根据column的static name获取display name的方法SPGetDisplayFromStatic
语法
[javascript] view plaincopy
- var thisDisplayName = $().SPServices.SPGetDisplayFromStatic ({
- webURL: "", //列表所在站点的url,默认是当前站点url,可以使用相对url例如 "/", "/Departments/HR"
- listName: "", //列表名字或者GUID,如果是GUID,应该使用"{9CC9DF10-E677-4A59-8FBE-B622F9598CFE}"这种形式
- columnStaticName: "", //column的static name
- columnStaticNames: [] //可以指定多个column的static name
- });
一个例子,获取Tasks列表中的Title列的display name:
[javascript] view plaincopy
- var titleDisplayName = $().SPServices.SPGetDisplayFromStatic ({
- listName: "Tasks",
- columnStaticName: "Title"
- });
获取Tasks列表中的Title和Status列的display name:
[javascript] view plaincopy
- var displayNames = $().SPServices.SPGetDisplayFromStatic ({
- listName: "Tasks",
- columnStaticNames: {"Title", "ContentType"}
- });
根据column的display name获取static name的方法SPGetStaticFromDisplay
与上一个方法相反,这个方法根据display name获取column的static name。
语法:
[javascript] view plaincopy
- var thisStaticName = $().SPServices.SPGetStaticFromDisplay ({
- webURL: "",
- listName: "",
- columnDisplayName: "",
- columnDisplayNames: []
- });
仅举一个例子:
[javascript] view plaincopy
- 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的值:
[javascript] view plaincopy
- var queryString = $().SPServices.SPGetQueryString();
- var itemId = queryString["ID"];
- 或者
- var itemId = queryString.ID
获取当前列表ID的方法SPListNameFromUrl
在列表的上下文中,从Url中获取列表的ID。
[javascript] view plaincopy
- var listId = $().SPServices.SPListNameFromUrl()
将日期转换为ISO格式的方法SPConvertDateToISO
语法:
[javascript] view plaincopy
- $().SPServices.SPConvertDateToISO({
- dateToConvert: new Date(), //日期,默认是当前日期和时间
- dateOffset: "-05:00" //时区偏移量,默认是EST时间
- });
一个例子:
[javascript] view plaincopy
- var currentISO = $().SPServices.SPConvertDateToISO(); //获取当前日期的ISO时间,格式为:"2014-09-18T17:28:31Z-05:00"
以下是这篇文章的示例代码:
[javascript] view plaincopy
- <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>