我一直在看
http://jqueryui.com/demos/sortable/#default
大半天.我想使用新值来更新数据库是大多数人想要的.当我使用ASP.NET时,我的想法是使用序列化将新值发送到更新数据库的页面.这是脚本:
<script type="text/javascript">
jQuery(function() {
$("#sortable").sortable();
$("#sortable").disableSelection();
});
jQuery(function() {
$("#sortable li:lt(3)").css("font-weight","bold");
});
jQuery(function() {
$("#cmdUpdateSortOrder").click(function() {
$(".neworder").append("<br />");
$("#sortable li.ui-state-default").each(function() {
$(".neworder").append($(this).text() + "<br />");
});
var str = $("#sortable li.ui-state-default").sortable("serialize");
alert(str);
var result = $('#sortable li').sortable('toArray');
alert(result);
});
});
</script>
第一个功能来自jQueryUI示例,
第二个功能突出显示前三行,
单击按钮后,第三个功能会将新订单写入页面.
这两个警报都给我:
[object Object]
我希望有一个ID和值对,例如0 = 3& 1 = 2& 2 = 4等.另外,如果有人有更好的方法可以做到这一点,(ajax?),将不胜感激.
最佳答案
这是我解析可排序对象以通过jquery ajax发布到ASP.net MVC控制器操作的方式.
parseRouteRoleIds()可能就是您想要的.我只是在每个sortable()div上都有一个rowId类的隐藏范围.当我渲染页面的那一部分时,我只是将相关的项目键放入跨度中.稍后,当用户准备保存更改时,我只需在parseRouteRoleIds()函数中连接我的ID列表即可.
$.ajax({
type: 'POST',data: 'reviewCycleSwitchId=' + SWID + '&reviewCycleRoleIdList=' + parseRouteRoleIds(),url: root + saveRoutesPath,success: function(result) { // something you would do on success }
});
function parseRouteRoleIds() {
var kys = '';
$('.usedTiles li').each(function() {
kys = kys + ',' + $('.rowId',$(this)).html();
});
return kys;
}