SharePointCommunity
Die deutschsprachige Community für SharePoint 2016, 2013 und Office 365

Setzen von JSLink Property für eine Managed Metadata SiteColumn funktioniert nicht

bewertet von 0 Usern
Nicht beantwortet Dieser Beitrag hat 0 Geprüfte Antworten | 3 Antworten | 1 Follower

Top-50-Beitragsschreiber
Männlich
291 Beiträge
Christian Merkel erstellt in 12 Apr 2017 11:06

Hi,

ich bin gerade dabei via JSLink eine ManagedMetadaten-Spalte zu verändertn. Diese hat eine CustomProperty "TargetLink" die ich dann anstelle des normalen tags als Link rendere. Geht super sowohl mit einfach als auch mehrfach Tags.

Doch leider greift das JSLink nur, wenn ich es in der JSLink Property des WebParts / Views setze.

Wenn ich es auf das Feld selber setzen will (SiteColumn) geht es nicht. Es wird immer wieder scheinbar auf den Standard JSLink-Wert für Taxonomy-Felder zurück gesetzt.

Hier mal ein Code-Ansatz zum Update des Feldes:

var config = {
    fieldTitle: "AG",
    jsLink: "~sitecollection/_catalogs/masterpage/JSLink/AGLinking.js"
};
var fieldData;

$.ajax({
  url: _spPageContextInfo.webAbsoluteUrl + "/_api/web/fields/getbyinternalnameortitle('" + config.fieldTitle + "')",
  type: "GET",
  headers: { "accept": "application/json; odata=verbose" },
  success: successGet,
  error: errorHandler
});

function successGet(data){
    fieldData = data;
   
    console.log("Feld-Abruf Erfolg!");
    console.log(data);

    if(fieldData.d.JSLink.indexOf(config.jsLink) < 0 ){
        var newJSLink = fieldData.d.JSLink + (fieldData.d.JSLink.length > 0 ? "|" : "") + config.jsLink;
        console.log("JSLink noch nicht gesetzt. Setze JSLink auf: " + newJSLink);
        $.ajax({
            url: _spPageContextInfo.webAbsoluteUrl + "/_api/web/fields('" + fieldData.d.Id + "')",
            type: "POST",
            data: "{ '__metadata': { 'type': 'SP.Field' }, 'JSLink': '" + newJSLink + "' }",
            headers: {
                "X-RequestDigest": $('#__REQUESTDIGEST').val(),
                "content-type": "application/json;odata=verbose",
                //"content-length": <length of body data>,
                "X-HTTP-Method": "MERGE"
            },
            success: successUpdate,
            error: errorHandler
        });
    }
}

function successUpdate(data){
    console.log("Update erfolgt!");
    console.log(data);
}

function errorHandler(msg, status, error){
    console.log("Error!!!")
    console.log(msg);
}

Den schmeiss ich in meine Browser-Console und der wird komplett ausgeführt mit "Update erfolgt" meldung...

Aber bei erneutem Aufruf wird wieder der alte JSLink-Wert angezeigt.

kann ich einer Taxonomy-SiteColumn kein eigenes JSLink verpassen? muss es zwingend immer an den Views / WebParts passieren?

Danke euch!

SharePoint Enthusiast

Ich helfe gern, wenn es mein Zeit zu lässt :)
Gern auch per direkter Anfrage auf XING

Alle Antworten

Top-10-Beitragsschreiber
Männlich
18.032 Beiträge

Bist Du denn sicher, daß Dein Script bei anderen Feldern funktioniert? Und daß Du auch wirklich das richtige Feld erwischt hast? Ich wüßte sonst nicht, warum das bei Termstore-Feldern nicht gehen sollte...

Viele Grüße
Andi
af @ evocom de
Blog
Top-50-Beitragsschreiber
Männlich
291 Beiträge

Habs mit einem Text-feld probiert, da gehts reibungslos :)

Sehr komisch :/

Wie gesagt, habs ja früher auch schon so gemacht, nur noch nicht bei einem Taxonomie-Feld :D

SharePoint Enthusiast

Ich helfe gern, wenn es mein Zeit zu lässt :)
Gern auch per direkter Anfrage auf XING

Top-50-Beitragsschreiber
Männlich
291 Beiträge

Laut MSDN ist es scheinbaru auch garnicht vorgesehen die JSLink-Eigenschaft des Feldes zu verändern, da es ut eine GET-Methode gibt:

https://msdn.microsoft.com/en-us/library/microsoft.sharepoint.taxonomy.taxonomyfield.jslink.aspx

Somit muss man es entweder immer am WebPart setzen oder sich einen anderen Weg einfallen lassen :/ (z.B. das JSLink eines anderen Feldes in der Ansicht / Form nutzen und da einfach das Taxonomy Feld mit angeben.... ka...)

SharePoint Enthusiast

Ich helfe gern, wenn es mein Zeit zu lässt :)
Gern auch per direkter Anfrage auf XING

Seite 1 von 1 (4 Elemente) | RSS