Laden...

Asp MVC Tabellen sortierung Client oder Server Aufgabe?

Erstellt von DerHulk vor 14 Jahren Letzter Beitrag vor 14 Jahren 1.232 Views
DerHulk Themenstarter:in
270 Beiträge seit 2005
vor 14 Jahren
Asp MVC Tabellen sortierung Client oder Server Aufgabe?

Hallo Forum,

ich schlage mich gerade mit der Frage herum ob die Sortierung von Tabellen Inhalten
eine:

ausschließliche Client-Aufgabe (JavaScripct)
Serveraufgabe
Beides (sprich wenn JavaScript dann Client ansonsten Server)

ist! Ich würde ja sagen das letzteres gilt jedoch arbeite ich derzeit mit ASP-MVC und habe hier meine zweifel ob sich so was überhaupt mit dem MVC Ansatz verbinden lässt.

Um mein Problem zu erläutern folgendes Beispiel:

In MVC habe ich eine PartialView die mit einem recht Generischen-Model-Gebunden ist und eine Tabelle darstellen kann. Diese Parial-View möchte ich an verschieden stellen verwenden. Der Benutzer soll die Tabelle auf verschiedene Arten sortieren können.

Nur wenn die Sortierung auf dem Server durchgeführt werden soll, frag ich mich welcher Controller sich darum kümmern soll? Und wie die Partial-View am besten an die entsprechenden Action-Links kommen soll?

Evtl. kann mir einer auch nur einen Tipp geben da ich mich derzeit in MVC einarbeite kann es sein das ich noch zu sehr auf der Page-Pattern-Schiene hänge!^^

Mit freundlichen Grüßen

Hulk

I
302 Beiträge seit 2008
vor 14 Jahren

Hallo Hulk,
ich weiß nicht, ob es gut ist aber ich mach es folgendermaßen:

Ich nutze JQgrid.
Der Client rufe dann per JavaScript eine Action im Controller auf und übergibt die Parameter (welche Spalte wie sortiert werden soll).

Der Controller leitet das ganze in das Model weiter. Erst hier wird das Ganze sortiert.

Das Ergebnis wird dann per JSon zurückgegeben.

I
302 Beiträge seit 2008
vor 14 Jahren

Die Lösung mit der partiellen Sicht und generischen Lösung hört sich allerdings auch sehr gut an. Würde mich auch mal interessieren wie andere das gelöst haben? Die tolle Lösung gibts wohl bisher nicht.

Sobald die Tabelle nicht mehr nur dumm ist, wird's immer auf einen großen Aufwand herauslaufen.

DerHulk Themenstarter:in
270 Beiträge seit 2005
vor 14 Jahren

Hallo itstata,

danke schonmal für deine Antwort, ich tendiere derzeit eher zur ClientSeitigen soriterung mit JQuery, werde wohl mal am WE mich hinsetzen und es implementieren sofern ich es fertig bekomme Post ich es mal.

Mit der generischen Lösung bin ich derzeit im Zwiespalt, einerseit erspare ich mir redunatnen Code andererseits werden die einzelnen Views in ihrer dynamic eingegrenzt, als wenn ich jede für sich eine Tabelle zeichnen lasse. Werd einfach mal abwarten wie es sich entwickelt und was das MVC 2.0 evtl. alles noch mitbringt.

mfg Hulk

T
307 Beiträge seit 2008
vor 14 Jahren

Hallo DerHulk,
die Frage die Du stellst kann man nicht einfach so beantworten weil eine wichtige Information dazu fehlt.
Zum einen ist für eine solche Aufgabe wichtig zu wissen, ob ein Paging existiert und zum anderen ob auf die Echtheit der Daten acht gegeben werden soll.

Nur wenn die Sortierung auf dem Server durchgeführt werden soll, frag ich mich welcher Controller sich darum kümmern soll? Und wie die Partial-View am besten an die entsprechenden Action-Links kommen soll?

Ich verstehe das Problem nicht? Es reicht doch wenn Dein Model die Daten erhält, das löst Du mit einem Interface das Dir die Daten zurück gibt. Das Interface kannst Du dann immer in jeder Action verwenden, und schwupp füllt sich die Tabelle von allein.
Die Action ist die die Du gerade haben willst, unabängig von der Tabelle. Du musst nur die Sortierparameter zusätzlich mitübergeben.
Das wars schon...

I
302 Beiträge seit 2008
vor 14 Jahren

hallo Hulk,
was meinst du mit clienseitiger sortierung? oft werden die datentypen nur als string angezeigt, der client kann dann ein datetime nur schwierig sortieren. deswegen macht das bei dir das model.

DerHulk Themenstarter:in
270 Beiträge seit 2005
vor 14 Jahren

Hallo itstata,

sortierung war evtl. etwas unglücklich gewählt. Idee war das man z.B. die Row-Werte mit dem Column-Werte tauscht.

mfg Hulk