SharePointCommunity
Die deutschsprachige Community für SharePoint, Office 365 und mit Azure

jQuery - Felder in Listenansicht rot anzeigen

bewertet von 0 Usern
Beantwortet Dieser Beitrag hat 1 Geprüfte Antwort | 5 Antworten | 1 Follower

Top-100-Beitragsschreiber
142 Beiträge
Andman erstellt in 8 Feb 2016 10:45

 

Hallo!

Ich habe eine Listenansicht. (Siehe Bild)

Ich möchte das jede Zeile durchgegangen und verglichen wird, ob in einem Monat die Monatliche Kapazität überschritten wird. Dieses Feld soll dann rot hinterlegt werden.

Das Problem ist, das mal mehr oder weniger Zeilen angezeigt werden. Je nachdem wie viele Mitarbeiter im Einsatz sind. Die Zeilen und Felder haben im HTML Code auch keine festen ids. Somit tute ich mir schwer die ordentlich zu selektieren, bin nicht so fit mit jQuery und HTML.

Vielleicht kann mir da einer nen Tipp geben. Bzw. Wie selektiere ich in dem Fall z.B. die erste Zeile -> Feld 3 (170) und Vergleiche diesen Wert mit den Monaten dahinter.

Für Hilfe wäre ich dankbar :)

Beantwortet Geprüfte Antwort

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

Das macht man anders ;-)

Nicht nachträglich, wenn die Ansicht schon fertig ist, sondern gleich beim Aufbau. Benutze die Suchmaschine Deiner Wahl, um nach JSLink bzw. CSR zu suchen.

Viele Grüße
Andi
af @ evocom de
Blog

Alle Antworten

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

Das macht man anders ;-)

Nicht nachträglich, wenn die Ansicht schon fertig ist, sondern gleich beim Aufbau. Benutze die Suchmaschine Deiner Wahl, um nach JSLink bzw. CSR zu suchen.

Viele Grüße
Andi
af @ evocom de
Blog
Top-500-Beitragsschreiber
36 Beiträge
Hallo, würde ich im SPDesigner mit bedingter Formatierung der Spalten machen. Wenn Spalte Monat X > Spalte A; Schrift rot. Gruß Klaus
Top-100-Beitragsschreiber
142 Beiträge

Bedingte Formatierung geht doch mit dem SharePoint Designer 2013 gar nicht mehr oder?! Bei 2010 war das ne feine Sache.

Top-100-Beitragsschreiber
142 Beiträge

Ich schau mal danke.

Top-100-Beitragsschreiber
142 Beiträge

Ok, JSLink hat gut funktioniert. :) Hat auch den Vorteil, dass die Änderung direkt geladen werden. Bei jQuery sieht man manchmal den Verzug. Hatten schon mal was mit JSLink gemacht, hatte ich aber nicht mehr so auf dem Schirm. Wenn man halt nicht so oft damit arbeitet. Aber macht auf jeden Fall was es soll. :)

..ich häng mal das Script mit an. Falls mal jemand ne ähnliche Anforderung hat:

<script type="text/javascript">
(function () {
    var coloringFieldContext = {};
    coloringFieldContext.Templates = {};
    coloringFieldContext.Templates.Fields = {
        "Month1": { "View": coloringFieldTemplate },
        "Month2": { "View": coloringFieldTemplate },
        "Month3": { "View": coloringFieldTemplate },
        "Month4": { "View": coloringFieldTemplate },
        "Month5": { "View": coloringFieldTemplate },
        "Month6": { "View": coloringFieldTemplate },
        "Month7": { "View": coloringFieldTemplate },
        "Month8": { "View": coloringFieldTemplate },
        "Month9": { "View": coloringFieldTemplate },
        "Month10": { "View": coloringFieldTemplate },
        "Month11": { "View": coloringFieldTemplate },
        "Month12": { "View": coloringFieldTemplate }
    };
    SPClientTemplates.TemplateManager.RegisterTemplateOverrides(coloringFieldContext);
})();

function coloringFieldTemplate(ctx) {
    var currentFieldValue = ctx.CurrentItem[ctx.CurrentFieldSchema.Name];
    var currentRefferedFieldValue = ctx.CurrentItem["MonthlyCapacity"];
   
    var month1 = parseInt(currentFieldValue);
    var wert = parseInt(currentRefferedFieldValue);
    var wertanteil = wert - (wert * 0.10);

    if (month1 > wert) {
        return "<div align='right' class='ms-number' style='color: red;'><b>" + month1 + "</b></div>";
    }
    else if (month1 < wertanteil){
        return "<div align='right' class='ms-number' style='color: green;'><b>" + month1 + "</b></div>";
    }
    else if (month1 > wertanteil){
        return "<div align='right' class='ms-number' style='color: orange;'><b>" + month1 + "</b></div>";
    }
    else if ("NaN"){
        return "<div align='right' class='ms-number' style='color: green;'></div>";
    }
}
</script>

Seite 1 von 1 (6 Elemente) | RSS