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.




Skript-Editor und Aktualisierung eines Webparts

Geprüfte Antwort Dieser Beitrag hat 5 Antworten

Ohne Rang
86 Beiträge
MMAY erstellt 7 Juli 2015 15:40
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Moin Moin!

 

Ich habe auf einer Site zu einer benutzerdefinierten Liste einen Script-Editor hinzugefügt. In diesem ist Javascript Code, der mir gewünschte Zeilen der Liste grün hinterlegt.

 

Soweit so gut. Nun wenn man diese Liste bearbeitet und auf beenden klickt, oder eine automatische Aktualisierung des Webparts einträgt, habe ich das Problem, dass danach die Zeilen wieder weiß sind.

Meine Vermutung soweit was auch logisch ist: der Script-Editor wird nicht mit aktualisiert.

 

Ich habe jetzt auch schon versucht, dass ganze in eine JS Datei zu packen und an das Webpart zu binden. Leider lässt sich die Seite danach gar nicht mehr anzeigen. Selbst mit Google und diversen Artikel bringe ich das mit JS-Link nicht ans Laufen.

 

Jemand entweder eine Idee wie das mit dem Aktualisieren richtig angestoßen werden kann, oder JS-Link sauber(!) verlinkt werden kann? Auch wie die JS Datei auszusehen hat damit SharePoint das akzeptiert?

Alle Antworten

Ohne Rang
19231 Beiträge
Andi Fandrich Als Antwort am 7 Juli 2015 16:31
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Ein passendes Beispiel, wie man das mit JSLink macht, habe ich gerade nicht zur Hand.

Das Aktualisierungsproblem beruht darauf, daß die Ansicht per JavaScript geladen ist. Dein Script läuft ja nur einmal, wenn die Seite fertig ist. Wird die Ansicht danach neu erzeugt, bekommt Dein Script davon nichts mit. Und ich wüßte nicht, wie man ihm das beibringt. Du kannst höchstens das Ansichts-Webpart auf "Server rendering" stellen (Webparteinstellungen - Verschiedenes). Das lädt aber jedesmal die Seite neu und nimmt Dir sämtliche Möglichkeiten von JSLink...

Viele Grüße
Andi
af @ evocom de
Blog
Ohne Rang
9 Beiträge
Alacant Als Antwort am 13 Juli 2015 14:42
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Grund dafür sind Ajax-Callbacks, die das Webpart aktualisieren, aber eben nicht die komplette Seite neu rendert.

Eine Möglichkeit wäre ein Eventbinding, welches jedes Mal deine Funktion aufruft. Beispiel:

$(document).on('mouseover', "#contentRow", function () {
    //Zeilen einfärben
});

 

Ohne Rang
86 Beiträge
MMAY Als Antwort am 13 Juli 2015 15:45
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

An welche Stelle nur baue ich das am besten ein?

Im Script Editor hat es mal wieder dazu geführt, dass die Seite nicht angezeigt werden kann.

<script type="text/javascript" src="//ajax.googleapis.com/ajax/libs/jquery/1.10.0/jquery.min.js">   </script>

<script type="text/javascript">

$(document).on('mouseover', "#contentRow", function () {

    $Text = $("td.ms-cellstyle.ms-vb2:contains('Samstag')");

    $Text.parent().css("background-color", "#00FF80");

    $Text = $("td.ms-cellstyle.ms-vb2:contains('Sonntag')");

    $Text.parent().css("background-color", "#00FF80");

});

 

 

Liegt es an #contentRow?

Ansonsten komme ich mittlerweile direkt in die aspx der Seite, allerdings ist es scheinbar egal wo ich was einfüge, Seite ist danach leer und wird nicht angezeigt.. Gibt es da eine bestimmte Stelle wo mich SharePoint auch mal was einfügen lässt? Bei Forms weiß ich wo, bei Sites leider noch nicht...

Ohne Rang
46 Beiträge
Martin089 Als Antwort am 13 Juli 2015 16:05
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Also wenn ich Scripts direkt in die Seite einfüge, dann mach ich das immer an der Stelle direkt hinter dem "PlaceHolderAdditionalPageHead".

Genau hinter dem letzten Tag ( "</Sharepoint:UIVersionedContent>").

 

Ohne Rang
86 Beiträge
MMAY Als Antwort am 13 Juli 2015 17:26
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Es hat funktioniert! Danke!

 

Habe es jetzt so hinzugefügt:

<asp:Content ContentPlaceHolderId="PlaceHolderAdditionalPageHead" runat="server">

 

<script type="text/javascript" src="//ajax.googleapis.com/ajax/libs/jquery/1.10.0/jquery.min.js">   </script>

<script type="text/javascript">

$(document).on('mouseover', "#contentRow", function () {

    $Text = $("td.ms-cellstyle.ms-vb2:contains('Samstag')");

    $Text.parent().css("background-color", "#00FF80");

    $Text = $("td.ms-cellstyle.ms-vb2:contains('Sonntag')");

    $Text.parent().css("background-color", "#00FF80");

});

</script>