2016-04-21 7 views
0

In Orchard habe ich eine Abfrage erstellt, die nach einem Inhaltstyp "Student" filtert, und ich versuche, meine Schüler in einem Raster aufzulisten. So habe ich ein neues Layout auf die Abfrage und die folgenden Eigenschaften:Wie setze ich das Abfrage-Layout korrekt auf Raster?

  • Layout-Typ: Gitter
  • Anzeigemodus: Eigenschaften (und ich hinzugefügt, um die erforderlichen Eigenschaften aus dem Content Type)
  • Typ Anzeige : Detail (ich bin nicht sicher, ob dies richtig ist)
  • Gruppierung: keine
  • Ausrichtung: Horizontal
  • Anzahl der Spalten: bis 3 automatisch eingestellt wurde,

HTML-Eigenschaften:

  • GridTag: Tabelle
  • Row Tag: tr
  • Zell Tag: td

Aber das ist nicht das Gitter richtig angezeigt hat. Die Zeilen wurden horizontal statt vertikal ausgefüllt. Überprüfen Sie bitte die Abbildung unten:

enter image description here

Was ich brauche, ist das normale Raster-Layout, wo ich die Spaltennamen in der ersten Reihe und dann stellt jede Zeile die Daten für einen einzelnen Inhalt Artikel.

Wie kann ich das erreichen?

Edit:

I Orchard als Webprojekt bin mit. Alle Anpassungen werden über das Admin-Steuerfeld vorgenommen, sodass ich den Code nicht anpassen kann. Meine Frage ist, ob ich das mit Out-of-the-Box-Eigenschaften von Orchard tun kann.

Edit # 2:

Wenn die Ausrichtung auf vertikale Einstellung, hier ist die resultierende Anzeige: enter image description here

+1

können Sie Geige machen? oder stellen Sie einen Code zur Verfügung –

+0

Nun, ich benutze Orchard als Web-Projekt, ich kann den Code nicht anpassen. – user3340627

+0

können Sie bitte Orchard Dokumentationslink geben? –

Antwort

0

Ich glaube, Sie für diese suchen.

<table width="600" border="1" cellspacing="0" cellpadding="0"> 
 
    <tbody> 
 
    <tr> 
 
     <td>Name <a href="#">Jeff McDonald</a> 
 
     </td> 
 
     <td>20</td> 
 
     <td>Spain</td> 
 
    </tr> 
 
    <tr> 
 
     <td>Name <a href="#">John Alex</a> 
 
     </td> 
 
     <td>40</td> 
 
     <td>Italy</td> 
 
    </tr> 
 
    <tr> 
 
     <td>Name <a href="#">Kim Lincoln</a> 
 
     </td> 
 
     <td>30</td> 
 
     <td>netherland</td> 
 
    </tr> 
 
    </tbody> 
 
</table>

+0

Ja, aber wie kann ich Orchard dazu bringen? – user3340627

1

Wenn Sie Ausrichtung wählen: horizontal, Orchard die Einzelteile machen wie du gerade beschrieben; nebeneinander.

Wenn Sie nur Ausrichtung: vertikal wählen, wird Orchard die Elemente gestapelt, wobei die Spalten die Eigenschaften des Elements sind.

Wenn Sie auf dem Code von Orchard.Projections/Providers/Layout/GridLayout.cs aussehen, können Sie den folgenden Code sehen:

public dynamic RenderLayout(LayoutContext context, IEnumerable<LayoutComponentResult> layoutComponentResults) { 

    bool horizontal = Convert.ToString(context.State.Alignment) != "vertical"; 

    //.. 

    return Shape.Grid(Id: gridId, Horizontal: horizontal, Columns: columns, Items: shapes, Tag: gridTag, Classes: new[] { gridClass }, RowTag: rowTag, RowClasses: new[] { rowClass }, CellTag: cellTag, CellClasses: new[] { cellClass }, EmptyCell: emptyCell); 
} 

Dies bedeutet, dass Orchard eine Form machen wird 'Grid' genannt, mit der Eigenschaft Horizontal auf Alignment != "vertical" festgelegt.

zu sehen, wie diese Gitterform tatsächlich gemacht wird, Sie zu Orchard.Projections/Provider/Layout/LayoutShapes.cs gehen, und diesen Code sehen:

[Shape] 
public void Grid(dynamic Display, TextWriter Output, HtmlHelper Html, string Id, bool Horizontal, IEnumerable<dynamic> Items, int Columns, string Tag, IEnumerable<string> Classes, IDictionary<string, string> Attributes, string RowTag, IEnumerable<string> RowClasses, IDictionary<string, string> RowAttributes, string CellTag, IEnumerable<string> CellClasses, IDictionary<string, string> CellAttributes, string EmptyCell) { 
    //.. 

    // Here Orchard decides the columns and rows: 
    if (!Horizontal) { 
     seekItem = (row, col) => col*Columns + row; 
     maxCols = maxRows; 
     maxRows = Columns; 
    } 

    //.. 
} 
+0

Danke, ich werde versuchen, dies zu verwenden, um mein Raster richtig zu konfigurieren – user3340627

+0

Um die meiste Kontrolle zu erhalten, können Sie einfach die Layout-Option 'Shape' verwenden. Erstellen Sie dann die Form, die Sie benannt haben, und haben Sie vollständige Kontrolle darüber, wie die Elemente gerendert werden – devqon