# [SEAM] rich:dataTable sortBy Problem



## Raidri (13. Nov 2012)

Hallo,[

Ich habe eine EntityHome Project, dieses Projekt besitzt eine Liste von Tickets. Genau diese Tickets lasse ich mir in einer rich:dataTable wie folgt darstellen:

[XML]
<rich:dataTable id="ticketOverview" sortMode="multi" value="#{projectHome.tickets}"
					var="_tickets">				
					<rich:column styleClass="#{_tickets.columnColorbyPriority}" width="25" label="#" sortBy="#{_tickets.id}">
						<f:facet name="header">#</f:facet>
						<hutputText value="#{_tickets.id}" />
					</rich:column>
</rich:dataTable>
[/XML]

Hier noch die EntityHome Klasse:

```
@Name("projectHome")
public class ProjectHome extends EntityHome<Project> {

	/**
	 * 
	 */
	private static final long serialVersionUID = -6345635299698392121L;
	
	public ProjectHome(){
		
	}
	
	public void setProjectId(Integer id) {
		setId(id);
	}

	public Integer getProjectId() {
		return (Integer) getId();
	}

	@Override
	protected Project createInstance() {
		Project project = new Project();
		return project;
	}

	public void load() {
		if (isIdDefined()) {
			wire();
		}
	}

	public void wire() {
		getInstance();
	}

	public boolean isWired() {
		return true;
	}

	public Project getDefinedInstance() {
		return isIdDefined() ? getInstance() : null;
	}

	public List<ProjectToUser> getProjectToUsers() {
		return getInstance() == null ? null : new ArrayList<ProjectToUser>(
				getInstance().getProjectToUsers());
	}
	
	public List<Ticket> getTickets() {
		return getInstance() == null ? null : new ArrayList<Ticket>(
				getInstance().getTickets());
	}
}
```


Klicke ich nun auf sortieren so, wird im Hintergrund die Liste von Tickets sortiert, aber danach ist meine dataTable komplett leer. Erst wenn ich zwischen den Tabs die ich dort nutze einmal Wechsel, wird die Liste wieder angezeigt und sie ist richtig sortiert. Was muss ich tun, damit die Liste direkt wieder sortiert angezeigt wird.

Danke für eure Hilfe.


----------



## Sym (13. Nov 2012)

Wird getTickets() denn noch aufgerufen? Wenn nicht, reicht evtl. schon ein Rerender auf ticketOverview


----------



## Raidri (13. Nov 2012)

Beim klicken auf die Spalte wird getTIckets aufgerufen. Ich hänge noch 2 Screenshots an was genau passiert. Vorm Sortieren sieht die Tabelle wie folgt aus:

Sobald ich sortiere wird auch getTickets wieder aufgerufen.

So sieht die Tabelle vor dem sortieren aus:




und nachdem Sortieren geht sogar die Formatierung der Spalten weg:


----------



## Sym (13. Nov 2012)

Und vermutlich werden auch Daten zurückgegeben, oder?

Hast Du trotzdem mal versucht, die Tabelle neu zu zeichnen?


----------



## Raidri (14. Nov 2012)

Daten sind vorhanden und werden zurückgegeben.

Wie kann ich die Tabelle bei der sortBy Funktion neu Zeichen ? Die reRender Funktion der dataTable bringt da nichts.


----------



## Sym (14. Nov 2012)

Ich hatte gedacht, so ein Event wird bei der Tabelle geworfen, konnte es jetzt aber nicht finden.

Was macht denn sortMode bei Dir? Das ist doch ein Attribute der ExtendedDataTable. Hast Du diese mal probiert?


----------



## Raidri (14. Nov 2012)

Interessant. Die extendedDataTable kann damit umgehen und nun gehts.
Ich frag mich nur warum es bei der normalen nicht geht.

Aber immerhin habe ich so das Problem erst einmal weg.

Vielen Dank für die Hilfe.


----------

