Ho implementato JQuery ordinabile e funziona correttamente. Il problema è che non posso passare l'elenco nel suo nuovo ordine a un controller in modo da poterlo salvare.Salvataggio di JQuery Sortable (nuovo ordine) nel controller MVC ASP.Net?
<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>
e il mio controller:
[HttpPost]
public EmptyResult SortedLists(List<string> items)
{
return new EmptyResult();
}
Elenco articoli torna con il numero corrent di elementi - ad eccezione di ogni elemento sono stringhe vuote.
Se l'elenco originale assomiglia a questo
- 1 - Auto
- 2 - Barca
- 3 - Moto
- 4 - Aereo
E l'utente trascina e stazioni essere
- 4 - Aereo
- 1 - Auto
- 3 - Moto
- 2 - Barca
Come posso passare che nuovo ordine? Suppongo che id passi l'intera cosa su invio, cancelli l'intera lista e riporti l'intero elenco
a meno che non ci sia un modo migliore? Approfittando di Linq (usando Linq in SQL) dove posso inserire il nuovo ordine su everychange e fare un submit changes?
Una cosa a cui ho pensato, anche se non sono sicuro se sia valida o meno, è cosa succede se il tuo id è in conflitto con qualcos'altro sulla pagina? Ad esempio, sto usando più elenchi, in cui ogni genitore della lista ha un id numerico e ogni elemento ha un id numerico e gli intervalli di parent e id del bambino si sovrappongono. Così facendo, puoi infrangere la regola di ogni elemento che ha un ID univoco. Quindi, invece, antepongo qualcosa all'id, ad es. "parent" + id e "child" + id – jamiebarrow