Mover/Ordenar elementos de una lista

Hola.

¿Hay forma de ordenar los elementos de una lista, arrastrándolos?

Algo así…

image


Un saludo.

Por el momento hacerlo arrastrando los elementos no es posible, ya que necesitas tener lógica implementada de drag and drop, y seria de agregarlo a ideas.apphive

Gracias, Josué.

Voy a subirlo a ideas, mientras tanto, ¿alguna idea para resolver esto?

Gracias.

Con lo que pudieses trabajar es con el orden de los elementos, y con botones para modificar ese orden. Vez que tu puedes controlar que registro mostrar primero en una lista, por medio de un campo que se llame “orden”, guardando 01, 02, 03 y te los muestra en ese orden, y dentro del Add Collections en Orden By le colocas ese campo. Luego en el contenedor original (El que se replica) poner unos botones de subir y bajar, tipo como el de mas menos del precio de los productos, esos botones lo que harán es modificar el orden de la lista, el que tenia orden 03, si le das al botón de subir, ejecutar una lógica para que le reste uno y pase a la posición de 02, y si le vuelve a dar al botón de arriba a ese mismo registro que le reste uno al orden y lo pase a la posición 01, y viceversa.

Hola amigo, una consulta respecto a este mismo tema… Estoy haciendo algo similar:

Al hacer un Press al botón de arriba, lo que haría es restar “1” al número de órden de este ITEM y cómo hago para que automáticamente sume “1” al ITEM anterior?

Alguien Podría ayudarme…?

Hola @Kevin_Carrillo_Palom , saludos!

Tendrías que armar una lógica algo compleja para realizar eso, te explico de manera general (En caso lo mas conveniente seria que se votara por la funcionalidad en ideas.apphive)

Cada item tendrá un Valor en el campo de la base de dato de Orden, ese valor puede ser 1, 2, 3, 4, etc. Cuando le restes un numero a un item, habrán dos items con el mismo numero de orden, es decir, si hay 4 items, (1, 2, 3, 4) y al item 4 le restas 1, habran dos items con orden 3, quedando (1, 2, 3, 3), aquí entra la lógica de la función que hagas, necesitaras recorrer la lista con un for each, para encontrar los 2 items que tienen el mismo valor en el campo de orden, en este caso, los dos que tienen el valor 3, cuando los encuentres, harás un condicional, para restarle un 1 al item con el id distinto al que modificaste, es decir, si al que tu le restaste uno, era el item A, y el otro es el item B, deberás de restarle uno al item cuyo ID sea distinto al del A., en ese caso, le restara un uno al valor del orden del item B, pasando de 3 a 2, y nuevamente por que habrá otro 2, tendrá que volver a ejecutarse esta lógica para restarle un 1 al item que ya tenia un 2, hasta llegar al item con valor 1, donde no le podrás restar 1 por que te daría 0, si no que tendrías que enviarlo hasta el final de la lista, asignándole en este caso el el valor de orden 4 (El 4 pasa al 3, el 3 pasa al 2, el 2 pasa al 1, y el 1 pasa al 4)

Si ves, es bastante compleja el desarrollo de la lógica, cuando se identifican lógicas así, lo mas conveniente es solicitar o promover la funcionalidad de la featured para que sea alguna característica de los Add Collections por ejemplo

1 Like

Interesante, tengo varias ideas e intentaré probarlas a ver si funcionan, ya que solo sería restarle 1 item que modifico y sumarle 1 al otro, como para que intercambien de lugar.

@Kevin_Carrillo_Palom Te comparto esta lógica que hice para hacer lo que necesitas: Mover elementos de una lista

Hola @Josue_Abrego_Soriano Yo generé una lista y la ordené con la columna Time que es donde guardo el timestamp, pero me muestra primero los registros más antiguos, quiero invertir el orden para que me muestre los registros más recientes, como puedo hacer eso?

Hola @Alejandro_Gutierrez para invertir el orden simplemente activas el Switch “List reverse” que se encuentra en Add Collections to UI

1 Like

Hola @Kevin_Carrillo_Palom muchísimas gracias por tu respuesta!!! que simple es y yo rompiéndome la cabeza jajaja

1 Like

No hay problema @Alejandro_Gutierrez… Estamos para apoyarnos…!

1 Like