7k entrées dans une liste déroulante est mauvaise pour l'expérience utilisateur. Puisque vous commandez déjà par description je suppose que vos utilisateurs savent déjà (au moins partiellement) ce qu'ils veulent sélectionner. Donc, donner une liste complète entrave réellement l'utilisateur.
Puisque vous demandent quel est autocomplétion
imaginer un champ d'entrée où les types d'utilisateurs un certain nombre de caractères. Lorsque l'utilisateur tape ce qu'il veut, la requête se déclenche. Ce paramètre de chaîne sera utilisé pour limiter davantage la taille de l'ensemble de résultats.
donc l'implémentation de requête est quelque chose comme ceci pseudocode:
//passedParameter => "%foo%"
var temp = from x in ActiveRecordLinq.AsQueryable<Circuits>()
where x.User_Created == false
and x.Description like passedParameter
orderby x.Description
select x;
La mise en œuvre effective à la fois la requête ainsi que si vous décidez de mettre en œuvre « %% foo » ou « foo% » etc, il est votre décision .
L'expérience utilisateur sera réduite à l'écriture 'foo' dans le champ de saisie et les résultats ne chercheront que le Circuits
pertinent sur lequel l'utilisateur va sélectionner ce qu'il veut. Si l'ensemble de résultats est encore trop grand, l'utilisateur peut ajouter 'b' au 'foo' déjà tapé en faisant un 'foob', là encore la requête se déclenche à nouveau en retournant un ensemble de résultats encore plus limité.
Lorsque vous tapez dans google et il vous donne des suggestions sur la mise en œuvre de son vol une autocomplétion
Il n'y a rien que vous pouvez optimiser là-bas. Récupérer près de 7k lignes et les afficher dans une liste déroulante est juste un mauvais design. –
La seule chose que vous pouvez optimiser est le nombre d'éléments dans cette liste déroulante :). Pouvez-vous faire quelque chose comme une saisie semi-automatique? – sirrocco
@Diego, je suis juste en train de mettre à jour le design actuel (en passant de sql). L'utilisateur doit être en mesure de sélectionner un circuit et il se trouve maintenant 7k d'entre eux maintenant. Comment iriez-vous en mettant en œuvre ceci? – Gage