2014-04-21 22 views
0

我有一個SharePoint列表(我們稱之爲'Employee'),並且使用jQuery和REST讀取和寫入列表中的屬性。如何使用REST更新SharePoint列表中的圖像url字段

如果我想更新例如一個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'。該列是超鏈接/圖片和子類型圖片的類型。我想爲特定的列表項設置列的圖像url屬性。

如何格式化ajax調用中的數據屬性以支持此類更新?

我可以找到關於如何更新標題字段的一千個樣本,但沒有關於像這樣的複雜類型的更新。

+0

您是否嘗試過只發送圖像的網址是什麼?或者你想要描述? –

+0

是的,當然,我收到了一個'錯誤的請求'錯誤。但實際上你的評論讓我仔細檢查,並且在用Fiddler檢查請求之後,我注意到了一個我從未見過的更詳細的錯誤消息:'屬性「EmployeeImage」在SP.Data.EmployeeListItem類型中不存在。這使我認爲屬性名稱是由url/description結構產生的,所以不是'EmployeeImage'而是'EmployeeImage.Url'或類似的東西,但我不知道正確的命名。 – TMan

+0

當字段在列表中根本不存在時,我收到了這個錯誤。但情況可能並非如此。嘗試使用UI填充此列,然後使用rest返回其值,然後查看它具有的格式。 –

回答

0

在我改正了列名問題後,我找到了錯誤消息後,我找到了答案。它實際上被證明是相當簡單:

爲了更新複雜類型這樣,你需要將它作爲一個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]

相關問題