If you are OK using a some JavaScript and can't create two separate forms, the following might help:
var listview1 = $('div[name="listview1"]').closest('div[class="row"]');
var listview2 = $('div[name="listview2"]').closest('div[class="row"]');
var listview3 = $('div[name="listview3"]').closest('div[class="row"]');
/* Logic to Determine the new order */
if(Button 1) /* Order is listview1- listview2 - listview3 */
{
listview1.parent().prepend(listview1);
listview2.insertAfter(listview1);
listview3.insertAfter(listview2);
}
else if(Button 2) /* Order is listview3 - listview2 - listview1 */
{
listview3.parent().prepend(listview3);
listview2.insertAfter(listview3);
listview1.insertAfter(listview2);
}
else /* Order is listview2 - listview1 - listview3 */
{
listview2.parent().prepend(listview2);
listview1.insertAfter(listview2);
listview3.insertAfter(listview2);
}
Disclaimer: I didn't fully test this code, I just tested the commands in the browser console, so you may need to tweak some of it and of course evaluate the conditions to determine the button clicked.