因为业务需求,需要对treegrid里面的每行数据进行上下位置调整,在网上搜了一下方法,都有一些问题,自己做了些改变,能够满足需求。贴出来希望对大家有所帮助:
function move(isUp) {
//得到选中的那一行
var selectNode = $("#PlanTemplateDataGrid").treegrid("getSelected");
if(selectNode == null){
$.messager.alert('操作提示','请选择数据!','warning');
return;
}
//动态获取datagrid-row的ID
var rowL = $('#PlanTemplateWrap .datagrid-row').attr('id').split('-');
rowL.splice(rowL.length-1,1);
var newRowL = rowL.join('-');
var selectRow=$('#'+newRowL+'-'+selectNode.id);
if(isUp=="up"){
var pre = selectRow.prev();//获得上一节点
if(pre.length==0) {
alert("无法移动!");
return;
}
var preClass=pre.attr("class");
while(preClass=='treegrid-tr-tree'){
pre=pre.prev();
preClass=pre.attr("class");
}
var preId=pre.attr("node-id");
var selectNode2=$("#PlanTemplateDataGrid").treegrid("pop",selectNode.id);
$("#PlanTemplateDataGrid").treegrid("insert",{before:preId,data:selectNode2});
$("#PlanTemplateDataGrid").treegrid("select",selectNode.id);
}else{
var next = selectRow.next();//获得下一节点
if(next.length==0) {
alert("无法移动!");
return false;
}
var nextClass=next.attr("class");
while(nextClass=='treegrid-tr-tree'){
next=next.next();
if(next.length === 0){
alert('无法移动');
return false;
}
nextClass=next.attr("class");
}
var nextId=next.attr("node-id");
var selectNode2=$("#PlanTemplateDataGrid").treegrid("pop",selectNode.id);
$("#PlanTemplateDataGrid").treegrid("insert",{after:nextId,data:selectNode2});
$("#PlanTemplateDataGrid").treegrid("select",selectNode.id);
}
}