关于Treegrid的代码:
').appendTo('body');
p.html($(source).find('.tree-title').html());
p.hide();
return p;
},
deltaX: 15,
deltaY: 15,
//拖动前触发,返回 false 就取消拖动。
onBeforeDrag:function(){
$(this).next('tr.treegrid-tr-tree').find('tr[node-id]').droppable({accept:'no-accept'});
},
//目标对象开始拖动时触发。
onStartDrag:function(){
$(this).draggable('proxy').css({
left:-10000,
top:-10000
});
},
//拖动期间触发。返回 false 将不进行实际的拖动。
onDrag:function(e){
$(this).draggable('proxy').show();
this.pageY = e.pageY;
},
//拖动停止时触发。
onStopDrag:function(){
$(this).next('tr.treegrid-tr-tree').find('tr[node-id]').droppable({accept:'tr[node-id]'});
}
}).droppable({
accept:'tr[node-id]',
//当可拖动元素被拖过时触发。source 参数指被拖动的 DOM 元素。
onDragOver:function(e,source){
var pageY = source.pageY;
var top = $(this).offset().top;
var bottom = top + $(this).outerHeight();
$(source).draggable('proxy').removeClass('tree-dnd-no').addClass('tree-dnd-yes');
$(this).removeClass('row-append row-top row-bottom');
if (pageY > top + (bottom - top) / 2){
if (bottom - pageY < 5){
$(this).addClass('row-bottom');
} else {
$(this).addClass('row-append');
}
} else {
if (pageY - top < 5){
$(this).addClass('row-top');
} else {
$(this).addClass('row-append');
}
}
},
//当可拖动元素被拖离开时触发。source 参数指被拖动的 DOM 元素。
onDragLeave:function(e,source){
$(source).draggable('proxy').removeClass('tree-dnd-yes').addClass('tree-dnd-no');
$(this).removeClass('row-append row-top row-bottom');
},
//当可拖动元素被放下时触发。source 参数指被拖动的 DOM 元素。
onDrop:function(e,source){
var action,point;
if ($(this).hasClass('row-append')){
action = 'append';
} else {
action = 'insert';
point = $(this).hasClass('row-top') ? 'top' : 'bottom';
}
$(this).removeClass('row-append row-top row-bottom');
//alert(action+":"+point);
// your logic code here
// do append or insert action and reload the treegrid data
var src = t.treegrid('find', $(source).attr('node-id'));
var dest = t.treegrid('find', $(this).attr('node-id'));
//alert(src.name+","+dest.name);
if (src){
t.treegrid('remove', src.id);
}
if(action == "append"){
src.parent = {};
src.parent.id = dest.id;
t.treegrid('append',{
parent: dest.id, // the node has a 'id' value that defined through 'idField' property
data: [src]
});
}else if(action == "insert"){
src.parent = dest.parent;
var obj = {
before: dest.id,
after: dest.id,
data: src
}
if(point == "top"){
delete obj.after;
}else{
delete obj.before;
}
t.treegrid('insert', obj);
}
if(src.id > 0){
params_data.update.push(src);
}
enableDnd(t);
/*
$.ajax({
url: 'updateCatalogList',
dataType: 'json',
type:'post',
data: {
"srcId": src.id,
"destId": dest.id
},
success:function(data){
if(data.result)
{
$('#treegridDemo').treegrid('reload'); //重新加载treegrid
}
}
});
*/
}
});
}
</script>