2 Stimmen

Wie kann man einem Benutzer am besten ermöglichen, eine große Liste auf einer Webseite zu durchsuchen?

Ich schreibe eine ASP.NET MVC-Anwendung, und ich habe ein Formular, in das ein Benutzer eine oder mehrere Teilenummern eingeben kann, die er zur Behebung eines Problems verwendet hat. In den meisten Fällen kennen sie die Teilenummer und können sie einfach eingeben. Gelegentlich brauchen sie jedoch etwas zusätzliche Hilfe.

Die Tabelle mit den Teilenummern enthält über 50.000 Einträge, die viel zu groß für ein Dropdown sind. Außerdem nimmt die Auswahl einige Zeit in Anspruch, so dass ich nicht weiß, ob eine automatische Vervollständigung hier wirklich so gut ist.

Welche anderen Vorschläge kann ich machen, um dies benutzerfreundlich zu gestalten?

2voto

Konstantin Tarkus Punkte 36184

Ich würde das Autocomplete-Feld verwenden und einen serverseitigen Cache für die Teilenummern hinzufügen (damit Sie sie nicht jedes Mal aus der Datenbank holen müssen, sondern nur, wenn die Datensätze aktualisiert werden). Auf diese Weise sollte es ziemlich schnell funktionieren.

Zwischenspeicherung in ASP.NET mit der SqlCacheDependency-Klasse

Mit diesem jQuery-Code können Sie Buchstaben filtern, die der Benutzer in Ihr "Autocomplete"-Feld eingibt:

$(function() {
    $.isShiftDown = false;
    $('input#partName').keydown(function(e) {
        if (e.keyCode == 16) $.isShiftDown = true;
        if ($(this).val().length == 0 && (e.keyCode == 188 ||
            e.keyCode == 189)) return false;
        return ($.inArray(e.keyCode, [8, 13, 35, 36, 37, 39, 46, 48, 49, 50,
            51, 52, 53, 54, 55, 56, 57, 188, 189]) > -1 && !$.isShiftDown)
            || (e.keyCode > 64 && e.keyCode < 91);
    }).keyup(function(e) { if (e.keyCode == 16) $.isShiftDown = false; });
});

(Ersetzen Sie diese Zahlen durch Ihre, die den erlaubten Zeichen entsprechen. Zum Beispiel ist e.keyCode == 16 eine SHIFT-Taste, 64 - 91 Codes sind Buchstaben von A bis Z)

2voto

VirtuosiMedia Punkte 49396

Einige Ideen:

  • Geben Sie Bereiche für Ihre Teilenummern an in einer Auswahlliste.
  • Verwenden Sie andere Kategorien als den Teil um die Suche einzugrenzen.
  • Verwenden Sie die automatische Vervollständigung mit einem Filter.

1voto

jgallant Punkte 10822

Sie könnten einen Filter auf die Ergebnismenge nach Tastendruck anwenden. Auf diese Weise rufen Sie nicht jedes Mal die Datenbank auf, und die Ergebnismenge würde auf das gefiltert, was der Benutzer eingegeben hat.

1voto

Joel Coehoorn Punkte 377088

Was andere gesagt haben, mit dem Zusatz, dass Sie bei großen Listen die automatische Vervollständigung erst starten müssen, wenn der Filter mindestens 2 oder 3 Zeichen lang ist.

1voto

Will Hartung Punkte 110997

Was Sie wirklich brauchen, ist ein Popup-Fenster, in das der Benutzer Kriterien für das Teil eingeben und die Abfrage in der Datenbank durchführen kann. Kategorie oder Teilename, Teilnummer, usw. Ein einzelnes Kombinationsfeld ist wahrscheinlich nicht "reichhaltig" genug, um den Benutzer ausdrücken zu lassen, "was sie wissen" über das Teil, so dass sie die Teilenummer im Vergleich zu einem Formular mit mehreren Feldern eingrenzen können.

Grundsätzlich wird eine modale Auswahl mit benutzerdefinierten Filterkriterien angezeigt. Setzen Sie ein kleines Vergrößerungsglas oder was auch immer neben das Feld, um es zu öffnen. Lassen Sie das Formular zunächst leer und ohne Ergebnisse erscheinen, dann kann der Benutzer die Suche eingrenzen.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X