zoukankan      html  css  js  c++  java
  • easyui datagrid 列拖拽

    首先easyui 它有提供了拖拽的功能Draggable,那我们就可以想 拖拽标题头到另外的标题头上面我们就对datagrid的columns重新绑定一次 并刷新datagrid这个功能不就行了?

    <script type="text/javascript"> var cols = [{ field: 'testName', title: '<span class="dropitem">测试名</span>', align: 'center',width:120 },
                   { field: 'testValue', title: '<span class="dropitem">测试值</span>', align: 'center', width: 120}]; var url="/Test/Test1Data";
        $(document).ready(function () {
            init();
            drag();//绑定datagrid,绑定拖拽
        }); function init() {
            $("#test").datagrid({
                url: url,
                type: "post",
                datatype: "json",
                width: 600,
                height: 280,
                loadMsg: "数据加载中,请稍后...",
                nowrap: true,
                rownumbers: false,
                pagination: true,
                singleSelect: true,
                columns: [cols], //bind数据成功重新设置拖动对象  onLoadSuccess: function (data) {          
                    drag();
                }
            });
        } //拖动drag和drop都是datagrid的头的datagrid-cell  function drag() {
            $('.datagrid-header-inner .datagrid-cell').draggable({
                revert: true,
                proxy: 'clone' }).droppable({
                accept: '.datagrid-header-inner .datagrid-cell',
                onDrop: function (e, source) { //取得拖动源的html值  var src = $(e.currentTarget.innerHTML).html(); //取得拖动目标的html值  var sou = $(source.innerHTML).html(); var tempcolsrc;//拖动后源和目标列交换  var tempcolsou; var tempcols=[]; for (var i = 0; i < cols.length; i++) { if (cols[i].title == sou) {
                            tempcolsrc = cols[i];//循环读一遍列把源和目标列都记下来  } else if (cols[i].title == src) {
                            tempcolsou = cols[i];
                        }
                    } for (var i = 0; i < cols.length; i++) { //再循环一遍,把源和目标的列对换  var col = {
                            field: cols[i].field,
                            title: cols[i].title,
                            align: cols[i].align,
                            width: cols[i].width
                        }; if (cols[i].title == sou) {
                            col = tempcolsou;
                        } else if (cols[i].title == src) {
                            col = tempcolsrc;
                        }
                         tempcols.push(col);  
                    }
                     cols = tempcols; //1秒后执行重绑定datagrid操作。可能是revert需要时间,这边如果没有做延时就直接重绑 就会出错。  //我目前的水平就想到这个笨办法,各位如果有好的想法建议可以提出来讨论下。  timeid = setTimeout("init()", 1000);
                }
            });
        } </script> <div id="test"></div>
  • 相关阅读:
    网站
    世上本无事,庸人自扰之
    mac系招聘BBS
    新浪微博语录帝摘录
    dwz jui
    cheap vps
    facebook的开发标准
    rails的一些插件
    租房宝
    在Z10上用3G
  • 原文地址:https://www.cnblogs.com/lenther2002/p/4672071.html
Copyright © 2011-2022 走看看