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

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

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

Top-25-Beitragsschreiber
Männlich
340 Beiträge
Christian Merkel erstellt in 4 Aug 2017 10:30

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 :)

SharePoint Enthusiast

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

Beantwortet Geprüfte Antwort

Top-25-Beitragsschreiber
Männlich
340 Beiträge

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

Alle Antworten

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

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
Top-25-Beitragsschreiber
Männlich
340 Beiträge

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

Top-25-Beitragsschreiber
Männlich
340 Beiträge

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

Seite 1 von 1 (4 Elemente) | RSS