SharePointCommunity
Die deutschsprachige Community für SharePoint, Microsoft 365, Teams, Yammer und mit Azure

Sponsored by

Willkommen im Forum Archiv.
Einträge sind hier nicht mehr möglich, aber der Bestand von 12 Jahren SharePoint-Wissen ist hier recherchierbar.




Objekt vom Typ TaxonomyItem erzeugen mit Javascript

Unbeantwortet Dieser Beitrag hat 2 Antworten

Ohne Rang
17 Beiträge
Pyro erstellt 6 Apr. 2016 13:57
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Hallo,

So wie hier beschrieben lese ich mehrere Spalten einer Liste aus.
http://sharepointcommunity.de/forums/p/33591/90783.aspx

Wenn ich aber so wie im Folgenden Code eine Spalte vom Typ verwaltete Metadaten auslese, bekomme ich als Ausgabe:
_ObjectType_=SP.Taxonomy.TaxonomyFieldValueCollection || _Child_Items_=[object Object] ||

Code:
alert(objectToString(oListItem.get_item('Kategorie'));

function objectToString (object)
{
  var str = '';
  for (var p in object)
  {
    if (object.hasOwnProperty(p))
    {
    str += p + "=" + object[p]  + '  ||  \n';
    }
  }
  return str;
}

 

ich kann also oListItem.get_item('Kategorie'). _Child_Items_ nicht auslesen

Laut dieser Seite, soll die Lösung wohl darin bestehen ein Objekt vom Typ TaxonomyItem zu erzeugen
https://blogs.msdn.microsoft.com/boodablog/2014/07/04/taxonomy-fields-return-as-dictionaries-using-the-client-objcet-model-in-sharepoint-2013/

Jetzt habe ich es allerdings nicht hinbekommen in Javascript solch ein Objekt zu erzeugen. Ich hab es versucht mit:

var dummy = new SP.Taxonomy.TaxonomyItem();

Dies verursacht einen Fehler, aber eigentlich sollte es doch so funktionieren, oder nicht?
https://msdn.microsoft.com/DE-DE/library/office/dn312531.aspx

Alle Antworten

Ohne Rang
19231 Beiträge
Andi Fandrich Als Antwort am 6 Apr. 2016 14:53
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Du denkst zu kompliziert ;-)

Di bekommst bereits ein passendes Objekt als Value. Schaue es Dir mal im Debugger an, es hat alle notwendigen Methoden.

Bei einem Feld mit Einfachauswahl bekommst Du mit val.get_label() den Text und mit val.get_termGuid() die zugehörige ID. Offenbar hast Du ein Feld mit Mehrfachauswahl und Du bekommst ein Array solcher Objekte und kannst sie mit einer for-Schleife durchgehen.

Viele Grüße
Andi
af @ evocom de
Blog
Ohne Rang
17 Beiträge
Pyro Als Antwort am 7 Apr. 2016 09:41
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Ok danke das hat mir weitergeholfen.

alert(oListItem.get_item('Bereiche').get_label());
Hat bei mir zwar nicht funktioniert, aber so hat es auch geklapp :)

    var arr = oListItem.get_item('Bereiche')._Child_Items_;
    var s   = '';
      if (arr.length >0)
      {
        for (var i = 0; i < arr.length; i++)
        {
          s = s + arr[i].Label + " ";
        }
      } else
      {
        s = "Das Feld ist leer";
      }
    alert(s);