Complex drag and drop - randomly picking dragged items back



I have been working on this drag and drop component. On the left I have a list of workers, on the right I have a shift box, where I need to assign some of these workers, while my list on the left gets updated. I am partially able to do this in a hierarchical order, meaning I start selecting from the top of the list and go down… I also have an embedded on duty/on break switch which causes some tummy ache, but in a rather random fashion. When I interact with the switch as it becomes visible in the sift box, some of the dragged name move back, and I am not able to figure out why. If any of you have experience with advanced drag/drop behavior, please let me know how I may work around what I am describing. Also, have any of you achieved similar drag and drop actions using repeaters? I appreciate any feedback or suggestion - I am sharing the link the RP file I am working on…



I think this should work - I also optimized some other parts of your design - more use of components and use of style effects.

It’s based on Gregor’s’ brilliant original solution (cited by Jorkin) - RIP Gregor my friend

Best, Ritch


Thank you, Rich!
This does help a lot, and I see how you’re utilizing repeaters and components together to make this work.
Thanks again!


Reposting the original RP file - had to remove components with copyrighted information.Worker1stShiftAssignment.rp (279.3 KB)


Thank you Jorkin! These are great examples to learn from, definitely helping to look at solving the problem through different angles. Ritch was awesome to offer a working suggestion that made the interaction much much cleaner.
Thank you all!


Sure, but I just updated axure and it stopped working! I’ll fix it over the weekend


Worker1stShiftAssignment_RM.rp (105.2 KB)

The file got corrupted (axure crash) so I have implemented where both repeaters are a single column. You can use your original 2 column design for the shift if you want but you will need to rebuild the logic on the “dragStartHandler” and “dragDropHandler” where the logic got corrupted. Hope that’s OK


@Ritch wait… has Gregor died? Very sad news :frowning:


Ritch, thanks! I believe I’ll be able to handle that part… Thanks for making mention of Gregor, really sad to hear about his passing.


Ok, let me know if you need any more help.


Sadly yes! I worked with him until shortly before he died, and was on my way to visit him to say goodbye but didn’t make it in time. I told his widow that he would be remembered - so I am pleased you remember him.


I believe he will be an unforgettable contributor extraordinaire & invaluable influencer in our space. All we can do is pay tribute to his contribution and efforts to help over the years… :frowning:


If it is not too much to ask would you mind looking at my update, where I added a note about adding a second state to reveal the switch only on the shift side, and not the list. I mean, I am able to hide the switch in the list view on the left, but when I set the switch to show after the “Drag Dropped” event, I am loosing the value exchange, and instead of rendering the dragged worker name, I am seeing $name.

Please see implication on - Worker1stShiftAssignment_RM_Rendered.rp (115.5 KB)


Hi, I just looked at it. You have made quite a few changes to the dynamic panel structures that have led to quite a lot of problems, and without being critical (I know you are a newbie :slight_smile: ) it’s now in a bit of a mess. The positioning of the dragDummy is also broken. All you need to do to hide the switch in the shift view is set the switch to be hidden in the component then show it in the “shift” repeater by adding a show “Switch” action to “switch” in the OnItemLoad event. I have done this in the file below.

Hope that helps

Worker1stShiftAssignment_RM.rp (104.0 KB)


Thank you, Ritch! I believe it is about training my mind in adopting the correct interaction type and learning where to invoke that :). You helped me learn a lot in the past couple of days, I will take that to heart.


My pleasure Mattya - All the best