4

在 SharePoint 2010 中使用 REST,您如何选择/过滤属于当前登录用户的列表行(无论是按作者、编辑器还是按人员字段进行过滤)

例如

http://myserver/_vti_bin/ListData.svc/Test?$filter=Author eq Me

我知道在 SP2007 中,使用 caml 您可以使用代表当前用户值的 UserID 元素。

编辑:嗯,似乎作者、编辑和任何其他人员字段都存储为整数,并重命名为 CreatedById 和 ModifiedById。如果你查询一个列表,你得到的只是

<d:CreatedById m:type="Edm.Int32">1</d:CreatedById>

如果我想取回用户的 NT 名称怎么办?我是否必须在某处进行另一个查询才能获取某个用户的 Int 值?

4

2 回答 2

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

它将为您提供当前登录用户创建的所有项目。

您还可以使用“和”添加一些额外的过滤器

"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'"
于 2014-11-05T08:44:09.583 回答
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'

于 2012-11-08T12:20:40.297 回答