Tôi đã triển khai JQuery có thể sắp xếp và nó hoạt động tốt. Vấn đề là tôi không thể vượt qua danh sách theo thứ tự mới của nó đến một bộ điều khiển để tôi có thể lưu nó.Lưu JQuery Sắp xếp (thứ tự mới) vào bộ điều khiển ASP.Net MVC?
<script type="text/javascript">
$(document).ready(function() {
$("#sortable").sortable({ axis: "y" });
});
$(function() {
$("#submit-list").button();
$("#submit-list").click(function() {
debugger;
$.ajax({
url: '/Admin/SortedLists/',
data: { items: $("#sortable").sortable('toArray') },
type: 'post',
traditional: true
});
});
});
</script>
<h2>Edit Roles</h2>
<div>
<ul id="sortable">
<% foreach (var item in Model.Roles) { %>
<li>
<%=Html.AttributeEncode(item.Name)%>
</li>
<% } %>
</ul>
<input type="submit" value="Save" id="submit-list"/>
</div>
và bộ điều khiển của tôi:
Danh sách[HttpPost]
public EmptyResult SortedLists(List<string> items)
{
return new EmptyResult();
}
mục trở lại với số lượng corrent của các yếu tố - ngoại trừ mỗi mục là chuỗi rỗng.
Nếu danh sách ban đầu trông như thế này
- 1 - Xe
- 2 - Thuyền
- 3 - Xe máy
- 4 - Plane
Và khi người dùng kéo và khu nghỉ dưỡng là
- 4 - Plane
- 1 - Xe
- 3 - Xe máy
- 2 - Thuyền
Làm thế nào tôi có thể vượt qua mà trật tự mới? Tôi cho rằng id vượt qua toàn bộ nội dung khi gửi, xóa toàn bộ danh sách và gửi lại toàn bộ danh sách này
trừ khi có cách nào tốt hơn? Lợi dụng LINQ (sử dụng LINQ to SQL) nơi tôi có thể chèn thứ tự mới trên everychange và thực hiện thay đổi gửi?
Một điều tôi đã nghĩ đến, mặc dù không chắc chắn liệu nó có hợp lệ hay không, đó là điều gì sẽ xảy ra nếu id của bạn xung đột với một thứ khác trên trang? Ví dụ: tôi đang sử dụng nhiều danh sách, trong đó mỗi phụ huynh trong danh sách có id số và mỗi mục có id số và phạm vi chồng chéo của cấp độ gốc và id con. Vì vậy, làm điều này, có thể phá vỡ quy tắc của mỗi phần tử có một id duy nhất. Vì vậy, thay vào đó tôi thêm một cái gì đó vào id, ví dụ: id "+ cha mẹ" và id "con" – jamiebarrow