Comment puis-je déplacer des éléments d'un contrôle de zone de liste vers un autre contrôle de zone de liste en utilisant JavaScript dans ASP.NET?Déplacement d'éléments dans deux listes de sélection
Répondre
Ce code suppose que vous avez une ancre ou qui déclenchera le mouvement quand il est cliqué:
document.getElementById('moveTrigger').onclick = function() {
var listTwo = document.getElementById('secondList');
var options = document.getElementById('firstList').getElementsByTagName('option');
while(options.length != 0) {
listTwo.appendChild(options[0]);
}
}
Je ne pense pas que cela enlèverait l'option de la liste à partir de laquelle vous la déplacez. –
@nemo Essayez-le et voyez. Ça fonctionne bien. La fonction appendChild() supprime l'option de son parent actuel et la déplace vers celle qui est spécifiée; sinon, vous dupliqueriez le noeud dans le DOM. – Tom
@nemo Pas un problème! À mon avis, il est toujours bon de savoir * comment * quelque chose fonctionne au lieu de simplement * que * cela fonctionne. – Tom
Si vous êtes heureux d'utiliser jQuery, c'est très, très simple.
$('#firstSelect option:selected').appendTo('#secondSelect');
Où #firstSelect est l'ID de la zone de sélection.
J'ai inclus un exemple de travail ici:
http://jsbin.com/aluzu (pour modifier: http://jsbin.com/aluzu/edit)
J'utilise javascript pourriez-vous s'il vous plaît me fournir en javascript – balaweblog
Vous ne devriez pas utiliser remove() ici. Il va supprimer tous les gestionnaires d'événements que vous pourriez avoir. $ ("# firstSelect option: selected"). appendTo ("# secondSelect") conservera tous les événements, et aura exactement le même effet. – nickf
@balaweblog: C'est javascript – user9991
Une solution de bibliothèque indépendante:
function Move(inputControl)
{
var left = document.getElementById("Left");
var right = document.getElementById("Right");
var from, to;
var bAll = false;
switch (inputControl.value)
{
case '<<':
bAll = true;
// Fall through
case '<':
from = right; to = left;
break;
case '>>':
bAll = true;
// Fall through
case '>':
from = left; to = right;
break;
default:
alert("Check your HTML!");
}
for (var i = from.length - 1; i >= 0; i--)
{
var o = from.options[i];
if (bAll || o.selected)
{
from.remove(i);
try
{
to.add(o, null); // Standard method, fails in IE (6&7 at least)
}
catch (e)
{
to.add(o); // IE only
}
}
}
}
HTML
<select id="Left" multiple="multiple" size="10">
<option>Some</option>
<option>List</option>
<option>Of</option>
<option>Items</option>
<option>To</option>
<option>Move</option>
<option>Around</option>
</select>
<div id="Toolbar">
<input type="button" value=">" onclick="Move(this)"/>
<input type="button" value=">>" onclick="Move(this)"/>
<input type="button" value="<<" onclick="Move(this)"/>
<input type="button" value="<" onclick="Move(this)"/>
</div>
<select id="Right" multiple="multiple" size="10">
</select>
CSS (exemple)
select { width: 200px; float: left; }
#Toolbar { width: 50px; float: left; text-align: center; padding-top: 30px; }
#Toolbar input { width: 40px; }
FF3 test rapide et IE6 & 7 uniquement.
Cette solution ne fonctionnait pas pour moi dans ASP.NET parce que j'avais besoin des contrôles pour gérer leur propre ViewState (valeurs précédemment sélectionnées) entre les messages, mais cela fonctionnait très bien pour une simple manipulation HTML/Javascript des listes de sélection. –
- 1. Fusionner deux listes de listes - Python
- 2. Union deux Listes ObservableCollection
- 3. Joindre deux listes ensemble
- 4. asp.net mvc Liste des listes de sélection
- 5. Indicateur d'intersection de deux listes utilisant LINQ
- 6. synchronisation de deux listes avec VBA
- 7. Sélection d'enregistrements entre deux dates dans deux colonnes
- 8. Comment déterminer les différences dans deux listes de données
- 9. Listes conditionnelles de valeurs dans Oracle APEX?
- 10. Recherche Python dans les listes de listes
- 11. Évaluation en deux ou plusieurs listes
- 12. Liaison ListBox DataTemplate avec deux listes
- 13. Générer deux listes à la fois
- 14. Commander deux listes C# différentes avec LINQ
- 15. Sélection de lignes uniques dans un ensemble de deux possibilités
- 16. Classer les deux listes en utilisant jQuery
- 17. Comment fusionner deux listes se chevauchant partiellement dans MySQL?
- 18. Comment écrire une fonction de schéma qui prend deux listes et retourne quatre listes
- 19. Comment obtenir la différence entre deux listes de noms R?
- 20. Problème de déplacement jQuery
- 21. Avoir des options de sélection dans 2 listes de menus déroulants?
- 22. Comment gérez-vous les "listes de sélection" dans une base de données?
- 23. LINQ et une sélection avec deux tables
- 24. Sélection de données à partir de deux tables
- 25. Recherche de l'égalité dans les éléments de deux listes de types différents
- 26. diviser les résultats de deux instructions de sélection PL/SQL
- 27. Sélection de la date la plus récente entre deux colonnes
- 28. Fusionner et mise à jour deux listes en C#
- 29. Comment initialiser deux listes en même temps avec ajax?
- 30. Déplacement de 50 sprites dans Cocos2d
Je supprime la balise asp.net, car cela n'a rien à voir avec asp.net. –
@balaweblog: Est-ce que vous essayez d'utiliser le contrôle ASP.NET ListBox comme base pour déplacer des éléments? Si c'est le cas, la balise ASP.NET est valide et je vais la rajouter et publier une solution qui aidera sur le côté ASP.NET des choses. –