zoukankan      html  css  js  c++  java
  • .net mvc mssql easyui treegrid 及时 编辑 ,支持拖拽

    这里提到了,1个问题,怎么扩展 Easyui

    参见: http://blog.csdn.net/chenkai6529/article/details/17528833

    @{
        ViewBag.Title = "Index2";
        Layout = "~/Views/Shared/_Layout.cshtml";
    }
    <!--支持拖拽的插件-->
    <script src="~/jquery-easyui-1.4.2/Extension/treegrid-dnd.js"></script>
    <input type="radio" name="OperationType" value="01">
    <span name="OperationSpan" style="cursor: pointer">编辑模式</span>
    <input type="radio" name="OperationType" value="02">
    <span name="OperationSpan" style="cursor: pointer">拖拽模式</span>
    <table id="MenuTree" title="Menu" class="easyui-treegrid" style="height: 700px;  850px;" data-options="
        rownumbers:true,
        method:'post',
        url:'@Url.Action("Index2")',
        treeField:'MenuName',
        fixed:true,  
        idField:'id',
        onClickCell:onClickCell,
        onLoadSuccess: function(row){
        $(this).treegrid('enableDnd', row?row.id:null);
        },
        onDrop: onDrop,
        onAfterEdit:onAfterEdit
        ">
        <thead>
            <tr>
                <th data-options="field:'id',checkbox:true"></th>
                <th data-options="field:'MenuName',editor:'text'">MenuName</th>
                <th data-options="field:'Url',editor:'text'">Url</th>
                <th data-options="field:'MenuNo'">MenuNo</th>
            </tr>
        </thead>
    </table>
    <script>
        //扩展方法 摘自 :http://blog.csdn.net/chenkai6529/article/details/17528833
        // if 里面 的没有看明白 else 里面的代码和后面的代码 ,意思是 所有节点 设置 draggable 为  disabled: true
        $.extend($.fn.treegrid.methods, {
            disableDnd: function (jq, id) {
                return jq.each(function () {
                    var target = this;
                    var state = $.data(this, 'treegrid');
                    state.disabledNodes = [];
                    var t = $(this);
                    var opts = state.options;
                    if (id) {
                        var nodes = opts.finder.getTr(target, id);
                        var rows = t.treegrid('getChildren', id);
                        for (var i = 0; i < rows.length; i++) {
                            nodes = nodes.add(opts.finder.getTr(target, rows[i][opts.idField]));
                        }
                    } else {
                        var nodes = t.treegrid('getPanel').find('tr[node-id]');
                    }
                    nodes.draggable({
                        disabled: true,
                        revert: true,
                        cursor: 'pointer'
                    });
                });
            }
        });
    
        var SelectId;//当前编辑行的Id
        var OperationType;// 操作模式 (编辑或拖拽)
    
        function onClickCell(index, field, data) {
            var Type = $("[name='OperationType']:checked").val();
            if (Type == "01") {
                $('#MenuTree').treegrid('disableDnd');
                if (SelectId != undefined) {
                    $('#MenuTree').treegrid('endEdit', SelectId);
                }
                SelectId = field.id;
                $('#MenuTree').treegrid('beginEdit', SelectId)
            }
        }
    
        function onDrop(targetRow, sourceRow, point) {
            // 记录 拖拽 的 数据
        }
    
        function onAfterEdit(row, changes) {
            for (change in changes) {
                //记录 修改 的 数据
            }
        }
    
        $(document).ready(function () {
            $("[name='OperationType']").click(function () {
                OperationType = $(this).val();
                if (OperationType == "01") {
                } else {
                    document.getElementsByName('OperationType')[1].checked = true;
                    $('#MenuTree').treegrid('endEdit', SelectId);
                    $('#MenuTree').treegrid('enableDnd');
                }
            });
    
            $("[name='OperationSpan']").click(function () {
                if (this.innerText == "编辑模式") {
                    OperationType = "01";
                    document.getElementsByName('OperationType')[0].checked = true;
                } else {
                    OperationType = "02";
                    document.getElementsByName('OperationType')[1].checked = true;
                    $('#MenuTree').treegrid('endEdit', SelectId);
                    $('#MenuTree').treegrid('enableDnd');
                }
            });
    
            document.getElementsByName('OperationType')[0].checked = true;// 设置默认为编辑模式
        });
    </script>

     效果图:

    数据源、后台代码 参见 上一篇  http://www.cnblogs.com/bingguang/p/4496951.html

    未完、待续~    后台执行代码还没有写.

  • 相关阅读:
    联系我们
    RCMTM _百度百科
    DotNetCore跨平台~Dockerfile的解释
    DotNetCore跨平台~服务总线_事件总线的重新设计
    DotNetCore跨平台~问题~NETCoreAPP, Version=v1.0' compatible with one of the target runtimes: 'win10-x64
    DotNetCore跨平台~EFCore连接Mysql的方式
    何时可以开启透明数据加密(TDE)?
    通信系统概论---传输介质
    struts2.x中因变量命名错误不被注入到值栈的问题
    【面向代码】学习 Deep Learning(三)Convolution Neural Network(CNN)
  • 原文地址:https://www.cnblogs.com/bingguang/p/4500918.html
Copyright © 2011-2022 走看看