如何使用REST更新SharePoint列表中的图像URL字段

时间:2014-04-21 08:57:31

标签: jquery rest sharepoint

我有一个SharePoint列表(我们称之为'Employee'),我使用jQuery和REST来读取和写入该列表中的属性。

如果我想更新,例如一个int属性(让我们称之为'EmployeeAge'),它非常简单:

jQuery.ajax({
        url: myUrl,
        type: "POST",
        data:  JSON.stringify({ '__metadata': { 'type': 'SP.Data.EmployeeListItem' }, 'EmployeeAge': age }),
        headers: { 
            "accept": "application/json;odata=verbose",
            "content-type": "application/json;odata=verbose",
            "content-length": 0,
            "X-HTTP-Method": "MERGE",
            "X-RequestDigest": $("#__REQUESTDIGEST").val(),
            "IF-MATCH": "*"

        },

        success: successHandlerUpdateEmployeeAge,
        error: errorHandlerUpdateEmployeeAge
        });

现在我想使用相同的原则来更新列表的另一列。我们称之为'EmployeeImage'。该列的类型为Hyperlink / Picture和子类型Picture。我想为特定列表项设置列的图像url属性。

如何在ajax调用中格式化数据属性以支持此类更新?

我可以找到关于如何更新标题字段的一千个样本,但没有关于更新复杂类型的样本。

1 个答案:

答案 0 :(得分:1)

在搜索了我在纠正列名称问题后得到的错误消息后,我找到了答案。事实证明它很简单:

为了更新这样的复杂类型,您需要将其作为javascript对象提供,而不是:

'EmployeeImage': 'http://myurl'

使用此表示法提供对象结构:

'EmployeeImage': {Url: 'http://myurl', Description: 'This is the description'}

看看这篇指出正确方向的文章:[http://social.msdn.microsoft.com/Forums/sharepoint/en-US/a4b4bfcf-1758-4131-9af2-bd1ecf0c839b/not-able-to-insert-a-record-in-a-list-using-rest?forum=appsforsharepoint]