Je crée des options pour un menu déroulant dans une barre d'outils à partir d'une table de base de données, en donnant aux ID des options la même valeur que l'index dans la table, par la description de l'option. La liste déroulante visuelle sort gentiment, mais quand je demande une liste de toutes les options, elles sont triées par id, c'est-à-dire getAllListOptions() et forEachListOption(). Existe-t-il des moyens de rechercher la liste d'options dans l'ordre «correct» pour choisir la première option de la liste, autre que de trier la liste moi-même? Pour souligner le problème, les ID ne sont pas dans l'ordre croissant lorsque les options sont triées par description, mais dhtmlx les ordonne intérieurement dans l'ordre croissant par valeur plutôt que par nom comme ils le devraient. I.E, disons que l'option avec ID de 8 sort en tête de liste, la première option de la liste interne devrait être "8" et non pas la plus petite ID (dans mon cas 2). Le site Web est MVC et le back-end est MS SQL Server. Les structures de données, comme les listes d'options, sont transmises via des scripts de rasoir au format XML.Obtention des options de la liste d'outils dans le même ordre que celui affiché
I.E. l'appel ajax pour obtenir la liste d'options est passé à travers la couche bussiness à la couche DAL, qui demande une liste d'objets triés sur la description. Le script de rasoir crée alors le XML comme celui-ci
<item id="tbbOptions" type="buttonSelect" title="@(Messages.Lookup("Config"))" selected="-1" text="@Messages.Lookup("Config_Select")">
@foreach (Analysis oAnalysis in Model.Analysis)
{
if (!string.IsNullOrEmpty(oAnalysis.SecondaryField))
{
<item type="button" id="@(oAnalysis.ID)" img="blueprint.png" imgdis="blueprint.png" text="@string.Format("{0}", oAnalysis.Description)" />
}
else
{
<item type="button" id="@(oAnalysis.ID)" img="blueprint.png" imgdis="blueprint.png" text="@string.Format("{0}", oAnalysis.Description)" />
}
}
</item>
requête SQL:
public List<Analysis> GetConfig()
{
return UnitOfWork.Database.Fetch<Analysis>("SELECT * FROM [Analysis] ORDER BY [Description]");
}
Ajouté plus d'informations à la question – aggaton