IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C# Discussion :

Ordre de séquence Drag and Drop


Sujet :

C#

  1. #1
    Nouveau candidat au Club
    Profil pro
    Inscrit en
    Juin 2010
    Messages
    1
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2010
    Messages : 1
    Par défaut Ordre de séquence Drag and Drop
    Salut à tous, peut-être le titre de la question n'est pas adéquat , voici mon problème, je vais commencer par vous donner un exemple:

    Séquence d'origine:
    0. Item_105
    1. Item_13
    2. Item_6
    3. Item_14
    4. Item_106

    Séquence modifiée:
    0. Item_105
    1. Item_14
    2. Item_13
    3. Item_6
    4. Item_106

    Ici, je dois avoir 2 indices:
    Index1 = 3
    Index2 = 1
    ce qui signifie que l'anciens élément 3 est allé à la nouvelle position 1

    Je travaille actuellement avec le langage C # et lorsque je fais glisser un élément pour le déposer dans une nouvelle position parfois elle me donne des indices bonne, parfois pas!
    c'est la boucle "for" que j'ai utilisé pour obtenir les indices:


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    for (int i = 0; i <stops.Count - 1; i + +) 
        { 
            if (originalOrder [i]! = modifiedOrder [i]) 
            { 
                if (originalOrder [i] == modifiedOrder [i + 1] & & index2 == -1) 
                    index2 = i; 
                else if (modifiedOrder [i] == originalOrder [i + 1] & & index2 == -1) 
                    index2 = i; 
                if (originalOrder [i]! = modifiedOrder [i + 1] & & index1 == -1) 
                    index1 = i; 
            } 
        }


    Donc, c'est mon problème: Comment obtenir l'index à droite 1 et 2? j'en ai besoin pour faire des calculs plus tard dans le code, si j'ai les bons index tout le reste est OK!

    S'il vous plaît quelqu'un peut m'aider?

  2. #2
    Membre éclairé
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    38
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Mars 2008
    Messages : 38
    Par défaut
    Salut,

    Je ne sais pas si optimal comme solution, mais ça m'a l'air de marcher

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
     
     
    //string[] originalOrder = new string[]{"Item_105 ", "Item_13", "Item_6", "Item_14", "Item_106"};
    //string[] modifiedOrder = new string[]{"Item_105 ", "Item_14", "Item_13", "Item_6",  "Item_106"};
     
    //string[] originalOrder = new string[]{"Item_105", "Item_13" , "Item_6", "Item_14", "Item_106"};
    //string[] modifiedOrder = new string[]{"Item_105", "Item_6", "Item_14", "Item_106", "Item_13"};
     
    //string[] originalOrder = new string[]{"Item_105 ", "Item_13", "Item_6", "Item_14", "Item_106"};
    //string[] modifiedOrder = new string[]{"Item_14", "Item_13", "Item_6",  "Item_106", "Item_105 "};
     
    string[] originalOrder = new string[]{"Item_105", "Item_13", "Item_6", "Item_14", "Item_106"};
    string[] modifiedOrder = new string[]{"Item_106", "Item_105", "Item_14", "Item_13", "Item_6"};
     
    int oldIndex = 0;
    int newIndex = 0;
     
    for (int i = 0; i < originalOrder.Length; i++)
    {
    	if(originalOrder[i] != modifiedOrder[i])
    	{
    		if(originalOrder[i] == modifiedOrder[i+1])
    			newIndex = i;
    		else oldIndex = i;
    		break;
    	}
    }
     
     
    for (int i = originalOrder.Length - 1; i > 0 ; i--)
    {
    	if(originalOrder[i] != modifiedOrder[i])
    	{
    		if(originalOrder[i] == modifiedOrder[i-1])
    			newIndex = i;
    		else oldIndex = i;
    		break;
    	}
    }
     
    Console.WriteLine(oldIndex);
    Console.WriteLine(newIndex);

Discussions similaires

  1. Drag and drop "de l'extérieur"
    Par Invité dans le forum C++Builder
    Réponses: 12
    Dernier message: 31/03/2020, 10h10
  2. [1.x] [Propel] JQuery Drag and Drop Ordre Backend
    Par cacahuete85 dans le forum Symfony
    Réponses: 4
    Dernier message: 21/09/2009, 10h08
  3. [VB.NET] Microsoft TreeView drag and drop ?
    Par bigtoof dans le forum ASP.NET
    Réponses: 7
    Dernier message: 24/05/2004, 14h50
  4. [JSP][DRAG AND DROP]
    Par hamed dans le forum Servlets/JSP
    Réponses: 7
    Dernier message: 23/01/2004, 17h36
  5. drag and drop
    Par jujuesteban dans le forum Composants VCL
    Réponses: 5
    Dernier message: 20/06/2003, 09h23

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo