我正在使用Sharepoint 2013 JS客户端对象模型来检索和处理Pages列表。对于每个页面,我收集标题等信息。每个页面还包含AuthorId属性,我想用它来检索作者的姓名。怎么做?
以下是我的示例代码:
var ctx = new SP.ClientContext(siteUrl);
var items = ctx.get_web().get_lists().getByTitle('Pages').getItems(new SP.CamlQuery());
ctx.load(items);
ctx.executeQueryAsync(function () {
var listEnumerator = items.getEnumerator();
while(listEnumerator.moveNext()) {
var page = listEnumerator.get_current();
alert(page.get_item('Title') + ' - ' + ...);
}
});
此外,我还想检索页面网址。
答案 0 :(得分:2)
我认为你正在寻找Include
的{{1}}参数。微软没有详细记录,但网上有一些例子。在MSDN页面上,最后有一个社区添加内容可以进行一些讨论(http://msdn.microsoft.com/en-us/library/office/dn168903(v=office.15).aspx)。
SP.ClientContext.load
在下一个示例中,我已将get_lookupvalue添加到Author,并包含EncodedAbsUrl,FileDirRef和FileRef,供您试用该路径。你使用的那个取决于你的需求,但我怀疑你会想要EncodedAbsUrl或FileRef。以下是每个返回的示例:
EncodedAbsUrl:var ctx = new SP.ClientContext(siteUrl);
var items = ctx.get_web().get_lists().getByTitle('Pages').getItems(new SP.CamlQuery());
ctx.load(items, "Include(Id, Title, Author)");
ctx.executeQueryAsync(function () {
var listEnumerator = items.getEnumerator();
while(listEnumerator.moveNext()) {
var page = listEnumerator.get_current();
alert(page.get_item('Title') + ' - ' + page.get_item('Author'));
}
});
FileDirRef:http://yourserver.com/Pages/home.aspx
FileRef:/Pages
/Pages/home.aspx