¿Cómo puedo mover elementos de un control de cuadro de lista a otro control de cuadro de lista usando JavaScript en ASP.NET?Mover elementos en Dual Listboxes
Respuesta
Este código se supone que tiene un ancla o que activará al movimiento cuando se hace clic en:
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]);
}
}
No creo que esto elimine la opción de la lista desde la que la está moviendo. –
@nemo Pruébalo y mira. Funciona bien. La función appendChild() elimina la opción de su padre actual y la mueve a la que está especificada; de lo contrario, estarías duplicando el nodo en el DOM. – Tom
@nemo ¡No hay problema! En mi opinión, siempre es bueno saber * cómo * funciona algo en lugar de solo * que * funciona. – Tom
Si está contento de utilizar jQuery, es muy, muy simple.
$('#firstSelect option:selected').appendTo('#secondSelect');
Donde #firstSelect es el ID del cuadro de selección.
he incluido un ejemplo de trabajo aquí:
http://jsbin.com/aluzu (para editar: http://jsbin.com/aluzu/edit)
Estoy usando javascript me podría proporcionar en javascript – balaweblog
No debería usar remove() aquí. Eliminará cualquier controlador de eventos que pueda tener. $ ("# firstSelect option: selected"). appendTo ("# secondSelect") retendrá cualquier evento y tendrá exactamente el mismo efecto. – nickf
@balaweblog: Eso es javascript – user9991
Una solución biblioteca independiente:
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 (ejemplo)
select { width: 200px; float: left; }
#Toolbar { width: 50px; float: left; text-align: center; padding-top: 30px; }
#Toolbar input { width: 40px; }
prueba rápida y FF3 IE6 & 7 solamente.
Esta solución no me funcionó en ASP.NET porque necesitaba los controles para manejar su propio ViewState (valores previamente seleccionados) entre las publicaciones, pero funcionó muy bien para la manipulación simple de HTML/Javascript de las listas de selección. –
- 1. Listboxes, desplazamiento en sincronización
- 2. Dual list drag drop control
- 3. Mover elementos en torno a un ArrayList
- 4. ¿Múltiples listboxes se desplazan al mismo tiempo?
- 5. ¿Mover una gama de elementos entre contenedores?
- 6. Mover elementos de Python entre listas
- 7. Tarjeta SIM Dual Android
- 8. dual sim android sdk
- 9. Maestro dual de MySQL
- 10. Dual Sim Android
- 11. Android pantalla dual
- 12. Mover elementos entre carpetas en una lista de SharePoint 2010
- 13. ¿Mover elementos de compilación en msbuild a un archivo separado?
- 14. Texto de JComboBox de color dual
- 15. sentencias de paquete dual en Scala
- 16. ¿Qué es la tabla dual en Oracle?
- 17. Android tarjeta SIM dual API
- 18. Sitecore: mover elementos de la Web a la Maestra (¿Paquetes?)
- 19. Javascript - Cambiar el ancho del borde sin mover elementos circundantes.
- 20. ¿Cómo puedo implosionar "dual" una matriz anidada?
- 21. ¿Cómo se generan frecuencias de tono dual en MATLAB?
- 22. La unión no funciona en "modo dual" (webHttpBinding y basicHttpBinding)
- 23. Ruby On Rails en Windows - Linux VM o arranque dual
- 24. ¿Cómo eliminar múltiples elementos seleccionados en ListBox?
- 25. Mover MKCircle en MKMapView
- 26. Mover texto en un div sin mover el div
- 27. Seleccionar elementos en un cuadro de lista usando C#
- 28. ¿Cómo puedo crear una vista esquemática en la que puedo colocar, mover y conectar elementos?
- 29. ¿Cómo puedo mover mi repositorio en TortoiseSVN?
- 30. Mover hacia arriba personaje aparece en línea
Estoy eliminando la etiqueta asp.net, ya que esto no tiene nada que ver con asp.net. –
@balaweblog: ¿Está tratando de utilizar el control ASP.NET ListBox como su base en la que desea mover los elementos dentro o fuera? Si es así, la etiqueta de ASP.NET es válida y la volveré a agregar y publicar una solución que ayudará con ASP.NET. –