2016-09-08 22 views
1

我有一個SharePoint列表,我從使用JavaScript我的列表檢索元數據,但我有一個問題:如何檢索包含術語庫術語場的元數據?如何從術語庫的SharePoint檢索項在線

這裏是我的代碼:

function getmetadata() 
{ 
    var listGuid = GetUrlKeyValue("List"); 
    var itemId = GetUrlKeyValue("ID"); 
    var clientContext = new SP.ClientContext(); 
    var item = clientContext.get_web().get_lists().getById(listGuid).getItemById(itemId); 
    clientContext.load(item); 
    clientContext.executeQueryAsync(
     function(){ 
      var logos = item.get_item("logo2"); 
      var code = item.get_item("Code_postal_x002d_batiment"); 
      var Surface = item.get_item("Surface"); 
      var complement = item.get_item("Secteur_activite_x002d_complement"); 
      var porteur = item.get_item("Nom_client"); 
      var mission = item.get_item("Mission_x002d_Artdesk"); 
      var vedette = item.get_item("photo_x0020_vedette"); 
      document.getElementById("logo").innerHTML = logos; 
      document.getElementById("codepostal").innerHTML = code; 
      document.getElementById("surface").innerHTML = Surface; 
      document.getElementById("complement").innerHTML = complement; 
      document.getElementById("porteur").innerHTML = porteur; 
      document.getElementById("mission").innerHTML = mission; 
      document.getElementById("photovedette").innerHTML = vedette; 

     }, 
     function(sender,args){ 
      alert(args.get_message()); 
     }); 
} 

例如,這是來自術語庫的一個術語:「Mission_x002d_Artdesk」,但返回的值是:[object Object]

我怎樣才能檢索項的長期價值商店?

+0

我試過這個代碼並檢索我一個錯誤: var mission = item.get_item('Mission_x002d_Artdesk'); var newsCatLabel = newsCat.get_label(); var newsCatId = newsCat.get_termGuid(); VM79099:15 Uncaught TypeError:newsCat.get_label不是函數 – ysfibm

回答

1

如果託管元數據字段允許多個值,則該對象將是類型TaxonomyFieldValueCollection;否則這將是一個單一的TaxonomyFieldValue

你可以抓住一個託管元數據字段值的Label,但不是在收藏;您需要遍歷集合以獲取集合中每個單獨值的Label

獲得一個單值分類字段

var fieldValue = item.get_item("FieldName"); 
var fieldLabel = fieldValue.Label; 

獲得一個多值的標籤(一個或多個)的標籤分類字段

var fieldValue = item.get_item("FieldName"); 
var taxEnumerator = fieldValue.getEnumerator(); 
while(taxEnumerator.moveNext()){ 
    var currentTerm = taxEnumerator.get_current(); 
    var label = currentTerm.Label; 
    // do something with the label here 
} 
+0

謝謝我試過了,這是我的代碼: var fieldValue = item.get_item(「Mission_x002d_Artdesk」); var fieldLabel = field.get_label(); document.getElementById(「mission」)。innerHTML = fieldValue; 它rtrieve我一個錯誤:VM95670:15未捕獲的ReferenceError:字段沒有被定義 – ysfibm

+0

我嘗試了: VAR fieldValue方法= item.get_item( 「Mission_x002d_Artdesk」); var fieldLabel = fieldValue.get_label(); document.getElementById(「mission」)。innerHTML = fieldLabel; 它retieve我一個錯誤:VM431:14遺漏的類型錯誤:fieldValue.get_label不是 – ysfibm

+0

你嘗試枚舉的方法的功能? – Thriggle