【问题标题】:Get SharePoint People Picker Data Using REST API使用 REST API 获取 SharePoint 人员选取器数据
【发布时间】:2019-11-29 00:45:39
【问题描述】:

我在 SharePoint 2013 中工作,并且正在编写对列表的 REST API 调用以检索字段数据,其中包括人员字段。我在检索查询中的字段时没有问题,但在后续的动态 HTML 中显示该字段时遇到问题。

这是字段信息:

  • 字段显示名称:监管合作伙伴
  • 字段内部名称:Regulatory_x0020_Partner

这是 REST API 查询字符串:

url: "/sites/regulatory3/testdashboard/_api/web/lists/GetByTitle('Contacts')/items?$select=Regulatory_x0020_Partner/ID,Regulatory_x0020_Partner/FirstName,Regulatory_x0020_Partner/LastName&$expand=Regulatory_x0020_Partner/ID",

这里是显示代码:

"<td><td class='columns1'>" + value.Regulatory_x0020_Partner.FirstName + "</td><td class='columns1'>"

在这里运行时输出是如何显示的:

未定义

这是我迄今为止尝试过的:

  • Regulatory_x0020_Partner/ID
  • Regulatory_x0020_Partner/FirstName
  • Regulatory_x0020_Partner/LastName

所有相同的结果。

【问题讨论】:

    标签: jquery rest sharepoint


    【解决方案1】:

    '$Select' 从你的 rest 端点中丢失,端点应该是这样的:'/sites/regulatory3/testdashboard/_api/web/lists/GetByTitle('Contacts')/items?"$select=Regulatory_x0020_Partner/ ID,Regulatory_x0020_Partner/FirstName,Regulatory_x0020_Partner/LastName&$expand=Regulatory_x0020_Partner'

    这是我的测试代码供你参考:

    <script src="https://code.jquery.com/jquery-1.12.4.js"></script>
    <script type="text/javascript"> 
    $(document).ready(function() {
                    getUser()
    } )
    function getUser(){
    
       $.ajax({  
                                    url: _spPageContextInfo.webAbsoluteUrl + "/_api/web/lists/getbytitle('dsds')/items?$select=Regulatory_x0020_Partner/FirstName,Regulatory_x0020_Partner/LastName,Regulatory_x0020_Partner/EMail,Regulatory_x0020_Partner/UserName&$expand=Regulatory_x0020_Partner/Id",  
                                    type: "GET",  
                                    headers: { "Accept": "application/json; odata=verbose" },  
    
    
                                    success: function(data) {  
                                       //console.log(data.d.results); 
                                                    for(var i = 0;i<data.d.results.length;i++)   {
                                                                    console.log("FirstName:"+data.d.results[i].Regulatory_x0020_Partner.FirstName);
                                                                    console.log("LastName:"+data.d.results[i].Regulatory_x0020_Partner.LastName);
                                                                    console.log("EMail:"+data.d.results[i].Regulatory_x0020_Partner.EMail);
                                                                    console.log("UserName:"+data.d.results[i].Regulatory_x0020_Partner.UserName);
                                                                    console.log("--------------------------------")
                    }                              
                                    },  
                                    error: function(error) {  
                                                    //alert(JSON.stringify(error));  
                                    }  
                    })
    }
    </script>  
    

    【讨论】:

    • 你说得对,李,但这只是一个复制错误。在我的工作代码中,$select= 语句在那里,并返回了其他字段,但问题是当 People 字段 - “Regulatory_x0020_Partner”显示时,它是“未定义的”。我已经更正了我的原始帖子以更好地代表实际代码。
    【解决方案2】:

    好吧,这很奇怪!本质上问题是字段名称中的空格。虽然 REST API 像这样处理其他字段中的空格 - My_x0020_Field,但当您对 Person 字段 - My_x0020_Person 使用相同的方法时,它不起作用。因此,当我创建一个新的 Person 字段时,我没有将其命名为 Regulatory_x0020_Partner,而是将其命名为 RegulatoryPartner,一切正常!

    其他人在使用 SharePoint、REST API 和带有空格的人员字段时遇到过这种怪癖吗?

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-11-02
      • 1970-01-01
      • 2015-11-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多