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.




JSLink für Listenansicht - Header beibehalten, Items komplett neu gestalten

Geprüfte Antwort Dieser Beitrag hat 3 Antworten

Ohne Rang
367 Beiträge
Christian Merkel erstellt 4 Aug. 2017 10:30
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Hi,

ich stehe gerade etwas auf dem Schlauch....

Folgendes hab ich vor:

  • Aufbau eines JSLink-List-Views
  • Custom Footer --> Muss nicht unbedingt sein, aber bei Bedarf
  • Custom Items --> diese sollen keine einzelnen Zeilen mehr sein, sondern jedes Item ein DIV das sich dann dynamisch nebeneinander sortiert :)
  • Default Header --> um Sortierung / Filterung zu erhalten

Mein Script geht soweit schon. Ich überschreibe nur die Templates für Item und Footer.

Meine Items werden dann aber außerhalb der Tabelle und zwar noch vor dem Kopf gerendert.

Sortierung / Filterung geht dann auch nicht mehr :)

Hat hier jemand einen besseren Ansatz für mich?

Einzige Idee:

Normales Rendering lassen für alles und dann im OnPostRender einfahc alles "verstecken" und neu bauen.... Hier habe ich nur den Verdacht, dass dann ja alle Items 2x gerendert werden :/

 

Danke euch :)

Alle Antworten

Ohne Rang
19231 Beiträge
Andi Fandrich Als Antwort am 4 Aug. 2017 11:12
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Der Header erzeugt eine öffnende <table> und die Kopfzeile. Du erzeugst dann für die Items vermutlich <div>s und überschreibst den Footer. Das hat zur Folge, daß erstens die Tabelle nie mit </table> geschlossen wird und zweitens die div vor der Tabelle erscheinen.

Ich sehe bei dem Ansatz aber den Sinn des standardmäßigen Sortieren und Filtern nicht. Das würde ich dann schon auch ganz anders gestalten. Die Frage ist dann, ob der Ansatz als CSR noch Sinn hat oder man gleich komplett etwas selbst baut.

Viele Grüße
Andi
af @ evocom de
Blog
Ohne Rang
367 Beiträge
Christian Merkel Als Antwort am 4 Aug. 2017 12:40
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

hmm.

Ich wollts mir halt einfach machen :)

Na gut. Dann überschreib ich die gesamte View und bau Sortierung und FIlterung irgendwie anders...

SharePoint Enthusiast

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

Ohne Rang
367 Beiträge
Christian Merkel Als Antwort am 4 Aug. 2017 14:20
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Ich habs jetzt doch ganze einfach lösen können.

Ich überschreibe die gesamte View und lade aber das default Rendering einfach rein:

ContactCard.RenderView = (function(ctx){
   
    if(ctx.Templates.Body == ""){
        return RenderViewTemplate(ctx);       
    }

   
    var html = '<div class="contactboard">';
   
        html+= RenderHeaderTemplate(ctx);
        html+= '</table>';
   
      var listData = ctx.ListData;
     
      for (var idx in listData.Row)

Somit baut er mir oben eine Tabelle mit dem Kopf und alles was im WebPart eingestellt wird (z.B. SUchfeld, Ansichtsumschaltung, Neues Element etc.) und unten kann ich mich austoben in meiner Schleife und jedes Item individuell gestalten :)

SharePoint Enthusiast

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