# bx:schleife

Das Tag `schleife` ersetzt das frühere [bx:loop](/books/cms-handbuch-entwickler/page/bx-formdata). Es können nun mehrere Schleifen in einer Ebene oder geschaltet benutzt werden. Der Inhalt dieses Tags kann beliebig mit anderen Tags versehen werden, z.B. [bx:text](/books/cms-handbuch-entwickler/page/bx-text) oder [bx:bild](/books/cms-handbuch-entwickler/page/bx-if).
 Um innerhalb der Schleife zu navigieren, benutzt man die Eigenschaften von [bx:loop](/books/cms-handbuch-entwickler/page/bx-formdata).

<p class="callout success">Will man auf einer Seite nur eine Iteration vornehmen, dann kann man auch das [bx:tools.for](/books/cms-handbuch-entwickler/page/bx-tools) - Tag nehmen.</p>

## Listausgabe

```xml
<bx:schleife.{bez} [orderby="{feldname}"] [richtung="desc" | desc] [list="{feldname}"] [showmax="{n}" | single [random] | all] [indexparam="{param}"]>
  Inhalt 
</bx:schleife.{bez}>
```

| bez | frei wählbarer Titel der Schleife<br>dient auch zum Unterscheiden von mehreren Schleifen einer Seite in der Datenbank<br>dieser Titel ist auch der erwartete Request-Parametername bei Aufruf als Detailseite |
| --- | --- |
| orderby | Feldname innerhalb der Schleife, nach dem die Liste sortiert werden soll |
| richtung | oder nur "desc" dreht die Sortierrichtung um |
| list | Feld innerhalb der Schleife (z.B. Name), das in der Verwaltung als Datensatz-Titel angezeigt wird<br>Wenn man innerhalb der Schleife mit bx:record einen DS aussuchen kann, dann kann auch der Bezeichner des bx:record genommen werden. (siehe 3. Beispiel) |
| showmax | Angabe der maximale Anzahl an Elementen |
| indexparam | Um mehrere blätterbare Listen zu ermöglichen, legen Sie für jede Liste einen eigenen Request-Parameter mittels "indexparam" an. |
| single \| all | single: Detailseitenmodus - wenn keine ID übergeben wurde, wird nichts angezeigt all: Listenmodus, auch wenn eine ID angegeben ist single random: ein Random-Element wird angezeigt |

### Beispiele

**Listenseite**

```xml
<bx:schleife.Cats list="Name">
  <bx:loop.count add="1"/> - <a href="detail.htm?Cats=<bx:loop.id/>"><bx:text.Name/></a><br>
</bx:schleife.Cats>
```

Liste mit Link auf die Detailseite. Der Requestparameter für die Detailseite muß so heißen wie die Schleife (hier "Cats").

**Detailseite**

```xml
<bx:schleife.Cats>
  <h1><bx:text.Name/></h1>
  <bx:textarea.Beschreibung/>
  <bx:bild.Bild/>
</bx:schleife.Cats>
```

Die Detailseite.

**Record**

```xml
<bx:schleife.Ansprechpartner list="Mitarbeiter">
  <bx:record.Mitarbeiter pool="Mitarbeiter><bx:recordfield.Vorname/> <bx:recordfield.Name/></bx:record.Mitarbeiter>
</bx:schleife.Cats>
```

Es wird das angezeigt, was bei der Containerdefinition definiert wurde.