---
title: "Sortierung im Module"
url: "https://www.typo3.net/d/126029-sortierung-im-module"
source: "typo3.net"
tags: ["Extensions","Entwicklung","Frage","TYPO3 8"]
created: "2017-05-27"
last_reply: "2017-06-05"
replies: 3
solved: false
page: 1
pages: 1
lang: "de"
---

# Sortierung im Module

Extensions › Entwicklung · 3 Antworten · gestartet 2017-05-27

## Eröffnungsbeitrag

**getit** · 2017-05-27 · [Beitrag #1](https://www.typo3.net/d/126029-sortierung-im-module/1)

Ich lese im meinem Modul alle Einträge in der DB aus und zeige diese in einer Tabelle an.

Nach dem Buch 'TYPO3 Extbase' von Patrick Lobacher habe ich ein Sort-Widget-View-Helper gebaut.
Das funktioniert auch gut.

Tabellarische Ausgabe (Resources/Private/Partials/Lebenslage/List.html):

```html
<table class="table table-striped table-hover">
  <thead>
    <tr>
      <th>Bezeichnung</th>
      <th></th>
    </tr>
  </thead>
  <tbody>
    <kk:widget.sort objects="{lebenslage}" as="lebenslage" property="bezeichnung">
      <f:for each="{lebenslage}" as="lebenslage">
        <tr>
	  <td>{lebenslage.bezeichnung}</td>
	  <td>
	    <f:link.action action="updateForm" arguments="{lebenslage:lebenslage}" class="btn btn-primary">
	      <i class="fa fa-pencil" aria-hidden="true"></i> Bearbeiten
	    </f:link.action>
	    <f:link.action action="deleteForm" arguments="{lebenslage:lebenslage}" class="btn btn-primary">
	      <i class="fa fa-trash" aria-hidden="true"></i> Löschen
	    </f:link.action>
	  </td>
        </tr>
      </f:for>
    </kk:widget.sort>
  </tbody>
```

Index.html (des Sort-Widget-View-Helpers in Resources/Private/Templates/ViewHelper/Widget/Sort/Index.html):

```html
<f:widget.link arguments="{order:order}" class="btn btn-primary" id="testOrder">Change Order</f:widget.link>
<f:renderChildren arguments="{contentArguments}"/>
```

Nur leider wird das 'Change Order' über der Tabelle ausgegeben

```html
<a class="btn btn-primary" id="testOrder" href="...">Change Order</a>
<table class="...">...</table>
```

Deshalb habe ich versucht die Zeile mit dem a-Tag in ein Partial auszulagern und auf dieses im List.html (1. Listing) im th zu verweisen:

```html
...
<th>
  Bezeichnung
  <f:render partial="ViewHelpers/Widget/Sort/Order" />
</th>
...
```

Aber leider bekomme ich da die Fehlermeldung: Call to undefined method TYPO3\CMS\Extbase\Mvc\Web\Request::getArgumentPrefix()

Logisch, ich bin im List-Partial außerhalb meines WidgetContexts (nur da gibt es getArgumentPrefix()).
Es muss aber doch irgendwie möglich sein, das Widget zum Sortieren in den th auszulagern.

Nachdem ich das nicht hinbekommen habe, wollte ich mir das selber Programmieren - das habe ich jetzt mittlerweile hinbekommen.
Aber wie kann ich dann die Sortierung des QueryResultObjekts manipulieren?

Ich hoffe jemand hat für eine (oder vll. beide) Möglichkeiten eine Lösung parat.
Danke schonmal

## Antworten

### [#2](https://www.typo3.net/d/126029-sortierung-im-module/2) · getit · 2017-05-28

Beim <f:widget.link> gibt es viele Argumente, ua. target. (siehe hier: <https://fluidtypo3.org/viewhelpers/fluid/master/Widget/LinkViewHelper.html>)

Könnte mir vorstellen das es damit vielleicht geht. Aber leider finde ich nirgends ein Beispiel wo dieses Argument verwendet wird (bei Fluid selbst steht nur: target="NULL" - toll, das hilft )#angry#

### [#3](https://www.typo3.net/d/126029-sortierung-im-module/3) · Julian.​Hofmann · 2017-06-01

Glaube, das Problem ist der Unterschied des HTML:
- Patrick arbeitet mit einer unordered List
- Du arbeitest mit einer Tabelle
IMHO dürfte auch bei Bepeispiel im Buch invalides HTML rauskommen... o.O
Bei Dir landet die Ausgabe des Widgets zwischen tbody und dem ersten tr => also mitten innerhalb der Tabellenstruktur, aber nicht in einer Zelle der Tabelle - wo/wie solld as der Browser darstellen?

Würde eher mal ansetzen, dass Du das Widget gleich nach table einsetzt, den thead samt Sortierlinks im Widget baust. Klingt zumindest praktikabel.
Evtl. ist das A-Z_Widget-Beispiel im Buch auch etwas, was dann mehr in Deien Richtung gehen dürfte.

Viele Grüße
Julian

### [#4](https://www.typo3.net/d/126029-sortierung-im-module/4) · getit · 2017-06-05

Hallo,
ich habs hinbekommen.

Also ich großen und ganzen war meine Vorgehensweise die Richtige.
Ich habe, wie im Buch beschrieben, einen Sort-View-Helper-Widget geschrieben und eingebunden.

Der Button zum Sortieren, der meinem Geschmack nach im <th> platziert werden soll und nicht über der Tabelle habe ich so gelöst:
Ich habe einfach den erstellten SortierButton per CSS versteckt und das href des Buttons ins JS verschoben:

```javascript
...
location.href = <Wert vom Button>
...
```

---

Quelle: „Sortierung im Module“, typo3.net, https://www.typo3.net/d/126029-sortierung-im-module
Beiträge von Mitgliedern des Forums. Bitte mit Link auf die Diskussion zitieren.
