通过 JSOM 获取当前用户更改的项目
Get items, changed by current user, via JSOM
在 SharePoint 2013 JavaScript 中,我想加载列表中已被当前用户修改的所有项目。我试过这个:
var ctx = SP.ClientContext.get_current();
var settings = ctx.get_web().get_lists().getByTitle('My Setting List');
var settingQuery = new SP.CamlQuery();
settingQuery.set_viewXml('<Query><Where><Eq><FieldRef Name="Editor" LookupId="TRUE" /><Value Type="Integer"><UserID /></Value></Eq></Where></Query>');
var settingItems = settings.getItems(settingQuery);
ctx.load(settingItems, 'Include(Id, Title)');
ctx.executeQueryAsync( /* ... */ );
但是它给了我所有用户的所有项目。我做错了什么?
SP.CamlQuery.viewXml Property 期望 XML 架构以下列格式指定:
<View>
<Query>
...
</Query>
</View>
因此,解决方案是使用 View
元素包含您的查询。
例子
var ctx = SP.ClientContext.get_current();
var list = ctx.get_web().get_lists().getByTitle(listTitle);
var qry = new SP.CamlQuery();
qry.set_viewXml('<View><Query><Where><Eq><FieldRef Name="Editor" LookupId="TRUE" /><Value Type="Integer"><UserID /></Value></Eq></Where></Query></View>');
var items = list.getItems(qry);
ctx.load(items, 'Include(Id, Title)');
ctx.executeQueryAsync(
function() {
console.log(items.get_count());
},
function(sender,args){
console.log(args.get_message());
});
在 SharePoint 2013 JavaScript 中,我想加载列表中已被当前用户修改的所有项目。我试过这个:
var ctx = SP.ClientContext.get_current();
var settings = ctx.get_web().get_lists().getByTitle('My Setting List');
var settingQuery = new SP.CamlQuery();
settingQuery.set_viewXml('<Query><Where><Eq><FieldRef Name="Editor" LookupId="TRUE" /><Value Type="Integer"><UserID /></Value></Eq></Where></Query>');
var settingItems = settings.getItems(settingQuery);
ctx.load(settingItems, 'Include(Id, Title)');
ctx.executeQueryAsync( /* ... */ );
但是它给了我所有用户的所有项目。我做错了什么?
SP.CamlQuery.viewXml Property 期望 XML 架构以下列格式指定:
<View>
<Query>
...
</Query>
</View>
因此,解决方案是使用 View
元素包含您的查询。
例子
var ctx = SP.ClientContext.get_current();
var list = ctx.get_web().get_lists().getByTitle(listTitle);
var qry = new SP.CamlQuery();
qry.set_viewXml('<View><Query><Where><Eq><FieldRef Name="Editor" LookupId="TRUE" /><Value Type="Integer"><UserID /></Value></Eq></Where></Query></View>');
var items = list.getItems(qry);
ctx.load(items, 'Include(Id, Title)');
ctx.executeQueryAsync(
function() {
console.log(items.get_count());
},
function(sender,args){
console.log(args.get_message());
});