我一直在使用以下脚本在jQGrid中拖放并将订单保存到数据库。一旦更改了行的顺序,它将从1开始对整个网格进行排序,并以更新的顺序重新加载网格。现在我需要一个修改过的功能。
jQuery(grid_selector).jqGrid('sortableRows', {
items: '.jqgrow:not(.unsortable)',
update : function(e,ui) {
var lista = jQuery(grid_selector).getDataIDs();
var idArray = new Array();
for (i=0; i < lista.length; i++) {
var rowData=jQuery(grid_selector).getRowData(lista[i]);
var valArray = {
uuid: rowData.uuid,
prize_order: i + 1
}
idArray.push(valArray);
}
var jsonString = JSON.stringify(idArray);
$.ajax({
url: "myurl/update_function",
type: 'POST',
data: {display_order_array : jsonString},
})
.done(function() {
$(grid_selector).trigger('reloadGrid');
var tId;
$("#messageDiv").html('<p class="alert alert-success">Order modified successfully</p>');
$("#messageDiv").hide().slideDown();
clearTimeout(tId);
tId = setTimeout(function(){
$("#messageDiv").hide();
}, 3000);
})
.fail(function() {
grid_selector.trigger('reloadGrid');
var tId;
$("#messageDiv").html('<p class="alert alert-danger">There is some issues in modifying order !!</p>');
clearTimeout(tId);
tId = setTimeout(function(){
$("#messageDiv").hide();
}, 3000);
})
}
});
当我订购一个从80开始的订单的清单时,它需要从80而不是从1开始订购。另外,如果我交换两行,比如说85和90,那么只需要重新订购85行和它不应该影响80到85之间的行的顺序。