1. $.extend($.fn.datagrid.methods,{
  2. columnMoving: function(jq){
  3. return jq.each(function(){
  4. var target = this;
  5. var cells = $(this).datagrid('getPanel').find('div.datagrid-header td[field]');
  6. cells.draggable({
  7. revert:true,
  8. cursor:'pointer',
  9. edge:5,
  10. proxy:function(source){
  11. var p = $('<div class="tree-node-proxy tree-dnd-no" style="position:absolute;border:1px solid #ff0000"/>').appendTo('body');
  12. p.html($(source).text());
  13. p.hide();
  14. return p;
  15. },
  16. onBeforeDrag:function(e){
  17. e.data.startLeft = $(this).offset().left;
  18. e.data.startTop = $(this).offset().top;
  19. },
  20. onStartDrag: function(){
  21. $(this).draggable('proxy').css({
  22. left:-10000,
  23. top:-10000
  24. });
  25. },
  26. onDrag:function(e){
  27. $(this).draggable('proxy').show().css({
  28. left:e.pageX+15,
  29. top:e.pageY+15
  30. });
  31. return false;
  32. }
  33. }).droppable({
  34. accept:'td[field]',
  35. onDragOver:function(e,source){
  36. $(source).draggable('proxy').removeClass('tree-dnd-no').addClass('tree-dnd-yes');
  37. $(this).css('border-left','1px solid #ff0000');
  38. },
  39. onDragLeave:function(e,source){
  40. $(source).draggable('proxy').removeClass('tree-dnd-yes').addClass('tree-dnd-no');
  41. $(this).css('border-left',0);
  42. },
  43. onDrop:function(e,source){
  44. $(this).css('border-left',0);
  45. var fromField = $(source).attr('field');
  46. var toField = $(this).attr('field');
  47. setTimeout(function(){
  48. swapField(fromField,toField);
  49. $(target).datagrid();
  50. $(target).datagrid('columnMoving');
  51. },0);
  52. }
  53. });
  54. // swap Field to another location
  55. function swapField(from,to){
  56. var columns = $(target).datagrid('options').columns;
  57. var cc = columns[0];
  58. _swap(from,to);
  59. function _swap(fromfiled,tofiled){
  60. var fromtemp;
  61. var totemp;
  62. var fromindex = 0;
  63. var toindex = 0;
  64. for(var i=0; i<cc.length; i++){
  65. if (cc[i].field == fromfiled){
  66. fromindex = i;
  67. fromtemp = cc[i];
  68. }
  69. if(cc[i].field == tofiled){
  70. toindex = i;
  71. totemp = cc[i];
  72. }
  73. }
  74. cc.splice(fromindex,1,totemp);
  75. cc.splice(toindex,1,fromtemp);
  76. }
  77. }
  78. });
  79. }
  80. });

调用$('#dg').datagrid({.....}).datagrid("columnMoving");

重新=》easyui DataGrid是否可以动态的改变列显示的顺序的更多相关文章

  1. jquery easyui DataGrid 动态的改变列显示的顺序

    $.extend($.fn.datagrid.methods,{ columnMoving: function(jq){ return jq.each(function(){ var target = ...

  2. Easyui Datagrid rownumbers行号四位、五位显示不完全的解决办法

    Easyui Datagrid rownumbers行号四位.五位显示不完全的解决办法(引) 方法一: 相信很多人在使用easyui的时候都遇到过这个问题,当我们设置成显示Rownumber的时候,你 ...

  3. easyui datagrid里的toobar按钮隐藏、显示、禁用等方式的实现

    easyui datagrid里的toobar按钮隐藏.显示.禁用等方式的实现 //隐藏第一个按钮 $('div.datagrid-toolbar a').eq(0).hide(); //隐藏第一条分 ...

  4. JQuery easyUi datagrid 中 editor 动态设置最大值最小值

    前言 近来项目中使用到 easyui 来进行页面设计,感觉挺方便的,但是网上除了api外,其他有价值的资料比较少,故在此分享一点经验,供大家参考.   问题 JQuery easyUi datagri ...

  5. easyui DataGrid表体单元格跨列rowspan

    最近做项目用到了jquery easyui,其中一组DataGrid做的报表是给客户大领导看的,客户要求报表样式跟他们原有系统的一模一样(如下图1). DataGrid样式好调,只是城市名称单元格跨行 ...

  6. EasyUI datagrid : 启用行号、固定列及多级表头后,头部行号位置单元格错位的问题

    症状如图: 上图中,行号列与checkbox 列融合了.解决方法是在datagrid 的 onLoadSuccess 事件中加入如下代码: var opts = $(this).datagrid('o ...

  7. 【技巧】easyUI datagrid在隐藏时加载,显示时无法加载出界面

    注意在显示时调用再调用一次resize就可以显示出来 $("#"+datagridId).datagrid("resize");

  8. easyui DataGrid 工具类之 后台生成列

    @SuppressWarnings({ "rawtypes", "unchecked" })    public Map<String, Object&g ...

  9. easyui datagrid设置fit: true后,页面显示不全的情况

    跟工具栏有关 <div id="tb"> <div style="float:left;"> <a href="#&qu ...

随机推荐

  1. 关于android的设备管理器-DevicePolicyManager(二)

    上回分析到了/data/system/device_policies.xml这个文件是在package change事件发生的时候变化的.那么来看看它的内容. 依据以往的经验.在/data/syste ...

  2. solr学习(一)

    1.搭建solr环境 1.1 下载solr安装包,下载地址:http://lucene.apache.org/solr/mirrors-solr-latest-redir.html 下载并解压 1.2 ...

  3. QtGui.QColorDialog

    he QtGui.QColorDialog provides a dialog widget for selecting colour values. #!/usr/bin/python # -*- ...

  4. ASP.NET操作Oracle知识记录(采用ODP.NET)

    最近因为要把以前做的一个项目数据库从MSSQL2005转移到Oracle上,所以开始接触Oracle,通过本篇随笔简单记录一些ASP.NET结合Oralce的操作: 因为微软未来不再支持 System ...

  5. JAVA中的字节流与字符流

    字节流与字符流的区别? 字节流与和字符流的使用非常相似,两者除了操作代码上的不同之外,是否还有其他的不同呢? 实际上字节流在操作时本身不会用到缓冲区(内存),是文件本身直接操作的,而字符流在操作时使用 ...

  6. git配置用户名邮箱

    通常会配置全局的 用户名 邮箱  例如 姓名@公司邮箱  姓名 git config --global user.name "姓名" git config --global use ...

  7. Android+手势识别详解

      今天就来把以前的学习文章与经验简单总结中出来吧,在这里我就直接把代码贴下来了,希望能给初学者做最佳的学习参考,也希望有更多的开发人员来加入 ANDROID开发团队,参与更多的创新方式的开发,好了, ...

  8. 使用Topshelf创建Windows服务(转)

    Calculator public class Calculator : ICalculator { public Calculator() { Logger = LogManager.GetCurr ...

  9. Memory leak patterns in JavaScript

    Handling circular references in JavaScript applications Plugging memory leaks in JavaScript is easy ...

  10. Spring Cloud(二):Spring Cloud Eureka Server高可用注册服务中心的配置

    前言 Eureka 作为一个云端负载均衡,本身是一个基于REST的服务,在 Spring Cloud 中用于发现和注册服务. 那么当成千上万个微服务注册到Eureka Server中的时候,Eurek ...