• 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>
  • 相关阅读:
    把指定文本输出到图片
    Delphi-WebService(53)
    YxdJSON
    Android 反编译工具
    delphi如何让程序最小化到任务栏(使用Shell_NotifyIcon API函数)
    守护进程-----杀死自己的进程再重新启动自己
    Delphi XE5通过DataSnap实现数据库三层应用
    用逆向设计和回归算法估算PWM
    早起的人生,到底有多赚
    为什么孝顺的人都会发家致富!我来告诉你!
  • 原文地址:https://www.cnblogs.com/lenther2002/p/4672071.html
Copyright © 2020-2023  润新知