Frage

Der beste Weg, damit der Benutzer eine Tabelle des Ordens definieren?

Wir sind mit SQL Server 2005 und DevExpress Kontrollen.

Wir haben eine Tabelle, die Folgendes enthält:

  1. Prozess A
  2. Prozess B
  3. Prozess C
  4. Bericht A
  5. Bericht B
  6. Bericht C

Wir wollen dem Benutzer ermöglichen, den Auftrag zu alles, was sie ändern möchten.

Hier ist ein Beispiel:

  1. Prozess C
  2. Prozess A
  3. Prozess B
  4. Bericht B
  5. Bericht A
  6. Bericht C

Um dies zu unterbringen wir eine Displayorder (INT) Feld der Tabelle hinzugefügt, die durch die Anwendung unserer gewartetem wird.

ist ein INT Feld mit der besten Lösung für einen Benutzer definierten Reihenfolge?

Gibt es andere Methoden, um dies zu erreichen?

Der Grund, ich frage, ist in unserer aktuellen Anwendung es etwa 1 Sekunde dauert eine Zeile nach unten (oder oben) zu bewegen. Ich bin zu knacken den Code zu öffnen, um zu sehen, warum es so lange dauert, und wenn Sie Stack-Überlauf-Gurus gute Ideen haben, könnte ich sie zu diesem Zeitpunkt umzusetzen.

Wenn Sie neugierig sind, hier ist, wie ich glaube, dass unsere Anwendung ermöglicht die Bearbeitung des Displayorder:

  1. Laden Sie die Tabelle in eine Gridview
  2. Wählen Sie eine Zeile
  3. Durch Klicken auf eine Schaltfläche Nach unten (es gibt auch eine Schaltfläche Nach oben)
  4. Das Click-Ereignis wird Displayorder der aktuellen Zeile mit der Zeile darunter tauschen.
  5. Die Änderung, sowohl der Aufzeichnungen werden wieder in die Datenbank geschrieben
  6. Dieser Vorgang dauert ca. 1 Sekunde pro Klick (das heißt 10 Klicks gleich 10 Sekunden)
War es hilfreich?

Lösung

Könnte es 1 Sekunde pro Austausch werden, weil Sie mit jedem Klick die DB aktualisieren? Vielleicht sogar die Daten erneut auswählt wieder zu?

Warum die Daten in lokale Objekte nicht auswählen. Binden Sie auf diese Objekte in das Netz. Wenn Sie die Objekte nach oben und unten bewegen, passen ihre Anzeigereihenfolge Eigenschaft. Dann nur tun ein Update auf die DB

  1. Wenn der Benutzer schließlich klickt speichern.
  2. Wenn einer der Werte des Objekts geändert hat.

Andere Tipps

Ich würde die rettende Entscheidung in eine explizite Speichern-Button für die Nachbestellung bewegen, weil der Benutzer seine Meinung ändern kann und, wie Peter Morris schlägt vor, dass in der Vergangenheit Ihre Performance-Problem bekommen.

Weitere Dinge zu beachten -. Explizites Verschieben nach oben und nach unten bewegen Elemente

Ich implementierte eine sehr erfolgreiche UI mit dieser Art von Ansatz für benutzergesteuerte Auswahl der durchsuchbaren Elemente und Reporting-Elemente in einem Enterprise-System. Weitere Details der Benutzeroberfläche sind für Sie sehen (be kind, erinnern es ist etwa 15 Jahre alt - zurück in flachen Mono Tage!). Eine wichtige Verfeinerung von vielen Benutzertests - der Sweet Spot für diese gescheut war nicht pro Benutzer oder pro-Unternehmen, sondern pro-Gruppe. Die Gruppen waren, die zusammenarbeiten, der (die gleiche Wurzel in einem massiv zusammenhängenden Graphen im Wesentlichen) eine die gleichen Ausgang Seite hatte. Wir hatten etwa 7 einzigartige Gruppen in der Organisation.

Also, wenn Sie für jeden Benutzer oder Gruppen Ansatz gehen, müssen Sie die Art von Daten aus in eine separate Tabelle ziehen, die Datenschlüssel zu Ordnungs ganzen Zahlen abbildet.

Wenn Sie Bereich spricht über eine Anzeige, damit der Benutzer einstellen und halten will, die mit der Benutzer-ID und den IDs der Datensätze in einer separaten Tabelle zu sein, braucht er oder sie will, um zu sehen, und eine Anzeigereihenfolge Spalte. Dann wird die Abfrage, die die Daten auf dieser Seite bekommt würde USEA die Benutzer Präferenztabelle verbinden.

Wenn Sie wollen einfach nur die Reihenfolge festlegen, temporaily für die Zeit, die Person auf dem Bildschirm schaut, tun Sie es thorugh die Benutzeroberfläche.

Auf jedem Fall nicht die Datensätze in der Basistabelle neu anordnen, das ist eine schlechte Wahl, wie Sie in Rennbedingungen ausgeführt werden, wo Benutzer ein eine Einstellung und Benutzer b inder Zwischenzeit will versucht, von einer differnt Einstellung zu ändern.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top