draggable datagrid columns

$.extend($.fn.datagrid.methods,{
columnMoving: function(jq){
return jq.each(function(){
var target = this;
var cells = $(this).datagrid(‘getPanel‘).find(‘div.datagrid-header td[field]‘);
cells.draggable({
revert:true,
cursor:‘pointer‘,
edge:5,
proxy:function(source){
var p = $(‘<div class="tree-node-proxy tree-dnd-no" style="position:absolute;border:1px solid #ff0000"/>‘).appendTo(‘body‘);
p.html($(source).text());
p.hide();
return p;
},
onBeforeDrag:function(e){
e.data.startLeft = $(this).offset().left;
e.data.startTop = $(this).offset().top;
},
onStartDrag: function(){
$(this).draggable(‘proxy‘).css({
left:-10000,
top:-10000
});
},
onDrag:function(e){
$(this).draggable(‘proxy‘).show().css({
left:e.pageX+15,
top:e.pageY+15
});
return false;
}
}).droppable({
accept:‘td[field]‘,
onDragOver:function(e,source){
$(source).draggable(‘proxy‘).removeClass(‘tree-dnd-no‘).addClass(‘tree-dnd-yes‘);
$(this).css(‘border-left‘,‘1px solid #ff0000‘);
},
onDragLeave:function(e,source){
$(source).draggable(‘proxy‘).removeClass(‘tree-dnd-yes‘).addClass(‘tree-dnd-no‘);
$(this).css(‘border-left‘,0);
},
onDrop:function(e,source){
$(this).css(‘border-left‘,0);
var fromField = $(source).attr(‘field‘);
var toField = $(this).attr(‘field‘);
setTimeout(function(){
moveField(fromField,toField);
$(target).datagrid();
$(target).datagrid(‘columnMoving‘);
},0);
}
});

// move field to another location
function moveField(from,to){
var columns = $(target).datagrid(‘options‘).columns;
var cc = columns[0];
var c = _remove(from);
if (c){
_insert(to,c);
}

function _remove(field){
for(var i=0; i<cc.length; i++){
if (cc[i].field == field){
var c = cc[i];
cc.splice(i,1);
return c;
}
}
return null;
}
function _insert(field,c){
var newcc = [];
for(var i=0; i<cc.length; i++){
if (cc[i].field == field){
newcc.push(c);
}
newcc.push(cc[i]);
}
columns[0] = newcc;
}
}
});
}
});

当dg 初始化后 ,调用此方法 $(‘#tt‘).datagrid(‘columnMoving‘);
时间: 2024-08-30 02:46:53

draggable datagrid columns的相关文章

easyui datagrid columns 如何取得json 内嵌对象(many-to-one POJO class)

http://www.iteye.com/problems/44119 http://hi.baidu.com/lapson_85/item/7733586e60b08500a1cf0f8d ———————————————————————————————————————————————————————————————————————————————————————— 1. json的数据格式: var map = {"uname":'',"upwd":'',&quo

easyui datagrid columns的field支持属性的子属性(field.sonfield形式或者格式化程序形式)

所谓为了支持某属性的子属性,主要为了解决.在服务器返回的json格式的数据的某个属性带有自属性,而我们恰恰又需要使用到该子属性作为我们的datagrid的某个字段的.默认情况下datagrid只能支持一级属性字段(属性的属性字段属于二级字段). 对于这个问题的解决方案有两种方式 1.就是更改esayui源文件,使其支持field.sonfield的形式. javascript语法为我们提供了两种方式获取一个对象的属性:点字符连接和[]方式.使用[]可以很方便的将一个属性通过字符串的方式获取.但是

easyui datagrid columns sorter 排序

var columns = [{ field: '月目标', title: '月目标', width: 60, sorter: sort_int }] ////按数字类型排序 自定义排序 function sort_int(a, b) { //indexOf("-"):没有返回-1 //第一个数正,第二个数负 if (a.indexOf("-") == -1 && b.indexOf("-") > -1) { return

springmvc+easyui datagrid columns的field支持属性的子属性(field.sonfield形式或者格式化程序形式)

所谓为了支持某属性的子属性,主要为了解决:在服务器返回的json格式的数据的某个属性带有子属性,而我们恰恰又需要使用到该子属性作为我们的datagrid的某个字段的.默认情况下datagrid只能支持一级属性字段(属性的属性字段属于二级字段). 对于这个问题的解决方案有两种方式: 1.就是更改esayui源文件,使其支持field.sonfield的形式. javascript语法为我们提供了两种方式获取一个对象的属性:点字符连接和[]方式.使用[]可以很方便的将一个属性通过字符串的方式获取.但

EasyUI datagrid columns 中 field 区分大小写

columns: [ [ {field: 'id', title: 'ID'}, {field: 'name', title: 'NAME'}, {field: 'DT_CRT_TM', title: 'CRTTM'} ] ] 原文地址:https://www.cnblogs.com/hfultrastrong/p/9821672.html

How to Add Columns to a DataGrid through Binding and Map Its Cell Values

How to Add Columns to a DataGrid through Binding and Map Its Cell Values Lance Contreras, 7 Nov 2013 CPOL    4.94 (9 votes) 1 2 3 4 5 4.94/5 - 9 votes μ 4.94, σa 1.04 [?] Rate: Add a reason or comment to your vote: x Votes of 3 or less require a comm

easyui datagrid 动态拼接columns以及赋值

需求背景如下: 后台java代码动态拼接datagrid的columns,然后赋值,实现过程如下: 后台java代码拼接过程,只是举个例子,可以根据具体业务拼接: java代码: Map<String, Object> map = new HashMap<String,Object>(); StringBuffer cols = new StringBuffer(); cols.append("[["); cols.append("{field:\&q

EasyUI DataGrid 应用示例

我们使用如下标签来创建表格 <table id="dg"></table> JS代码如下: $('#dg').datagrid({        columns:[[            {field:'TIME',title:'标题1,width:140},            {field:'SUM_NUM',title:'标题2,width:140, styler:function(value,row,index){                  

WPF 实现 DataGrid/ListView 分页控件

在WPF中,通常会选用DataGrid/ListView进行数据展示,如果数据量不多,可以直接一个页面显示出来.如果数据量很大,2000条数据,一次性显示在一个页面中,不仅消耗资源,而且用户体验也很糟糕.这篇博客将介绍如何创建一个分页控件. 为了简单起见,这个分页控件目前只有 首页/上一页/下一页/末页/总页数/第几页 等功能.实现思路,首页/上一页/下一页/末页 这四个通过路由事件来实现,在使用时可以使用命令进行绑定,或者直接使用均可.总页数和第几页通过依赖属性来实现,使用时将页数进行绑定显示