Я использовал jquery.tablednd.js , чтобы сделать строки моего перетаскивания jqGrid. Фактически я также установил dragHandle для этой таблицы в первом столбце.
thisмой код:
var myGrid = $("#jqGrid");
myGrid.jqGrid({
mtype : "GET",
data : dataElements,
datatype : 'json',
...
gridComplete : function() {
$("#jqGrid").tableDnDUpdate();
$("#jqGrid .jqgrow").mouseover(function(e) {
var rowId = $(this).attr('id');
$("#jqGrid tr#"+rowId).find("td:first-child").addClass("showDragHandle");
});
$("#jqGrid .jqgrow").mouseleave(function(e) {
var rowId = $(this).attr('id');
$("#jqGrid tr#"+rowId).find("td:first-child").removeClass("showDragHandle");
});
$('#jqGrid-' + tableID+ ' tr td:first-child').addClass("dragHandle");
},
...
});
$("#jqGrid").tableDnD({
dragHandle: "dragHandle",
onDrop: function(table, row){
var arrayOrder =[];
var dataId = $("#jqGrid").jqGrid('getDataIDs');
for(i = 0; i<dataId.length; i++){
arrayOrder[i] = $("#jqGrid").jqGrid("getCell", dataId[i], 1);
}
changeOrder(arrayOrder, caracID);
}
});
CSS:
td.showDragHandle{
background-image: url(../images/updown2.gif);
font-family: glyphicon-move;
background-repeat: no-repeat;
background-position: center center;
cursor:move;
}
несмотря на то, что в последнем комментарии в плагине указано, что версия 0.5 содержит исправлениепоставить все строки перетаскиваемыми, но у меня все еще есть проблема всегда с последней строкой, даже если я перетаскиваю другую строку под последнюю строку X, всегда эта строка X не перетаскивается.
Заранее спасибо!
Проблема решена: Я удалил
$ ("# jqGrid"). TableDnDUpdate ();
и это работает.