, , , - , - .
jQuery UI Sortable , , .
JQuery, :
- , .
tbody ( tbody, , ).- , (. ).
- *
td ( ) - . , AJAX "PUT" , , , .
- , (, ) ,
data-id="parentid", parentid - , - , (,
tr) , data-id="itemid", itemid - ,
sortable:
update: function (event, ui)
{
var $target = $(ui.item);
var itemId = parseInt($target.attr('data-id'));
var parentId = parseInt($target.parent('table').attr('data-id'));
var index = $target.index() + 1;
var url = "/api/reorder/" + itemId.toString() + "?order=" + index.toString() + "&parent="+ parentId.toString();
$.ajax({
url: url,
type: "PUT",
error: function (xhr, status, error)
{
alert(url + " " + error);
},
success: function (success: bool, status: string, xhr)
{
}
});
}
REST MVC API, .
:
bool Put(itemId, displayOrder, parentId)
{
var order = 1;
var listOfOrderedItems = getAllRecordsSortedByDisplayOrderBelongingTo(parentid);
foreach (var item in listOfOrderedItems)
{
if (order == displayOrder)
{
order++;
}
if (item.id != itemId)
{
item.DisplayOrder = order++;
}
else
{
item.DisplayOrder = displayOrder;
}
}
}
reorderData, jQuery, :
$(function () {
$('table.sortable').reorderData();
});
* . ( 3 ) , , , , . cancel: 'tr>td:not(:first-child)' Sortable, .