在SharePoint 2010中使用REST,如何选择/过滤属于当前登录用户的列表行(无论是按作者,编辑者还是按人员字段过滤的情况)
e.g。
http://myserver/_vti_bin/ListData.svc/Test?$filter=Author eq Me
我知道在SP2007中,使用caml可以使用表示当前用户值的UserID元素。
编辑: Humm,似乎作者,编辑器和任何其他Person字段都存储为Ints,并重命名为CreatedById和ModifiedById。如果您查询列表,则只需
<d:CreatedById m:type="Edm.Int32">1</d:CreatedById>
如果我想取回用户的NT名称该怎么办?我是否必须在某处进行另一个查询以获取特定用户的Int值?
答案 0 :(得分:5)
您也可以将此与UserID一起使用。 使用代码检索UserId:
var userId = _spPageContextInfo.userId;
并在URL中使用它,如下所示:
"http://spdevportal/dev/Lab2/_vti_bin/ListData.svc/IPParams?$filter=CreatedById eq"+userId
例如:http://spdevportal/dev/Lab2/_vti_bin/ListData.svc/IPParams?$filter=CreatedById eq 213
它将为您提供当前LoggedIn用户创建的所有项目。
您还可以使用'和'
添加一些额外的过滤器"http://spdevportal/dev/Lab2/_vti_bin/ListData.svc/IPParams?$filter=CreatedById eq"+userId+" and StatusValue eq 'approved'"
例如:
"http://spdevportal/dev/Lab2/_vti_bin/ListData.svc/IPParams?$filter=CreatedById eq 213 and StatusValue eq 'approved'"
答案 1 :(得分:3)
见
http://spdevportal/dev/Lab2/_vti_bin/ListData.svc/IPParams?$expand=CreatedBy
并使用
http://spdevportal/dev/Lab2/_vti_bin/ListData.svc/IPParams?$filter=CreatedBy/Account eq 'OFFICE\alexandr.pletnev'