• .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

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

  • 相关阅读:
    win10安装.net 3.5无法启动服务,原因可能是已被禁用或与其相关联的设备没有启动
    配置SQL用户访问指定表,指定列
    GNU Gettext for Delphi, C++ and Kylix
    Delphi 7 中使用IdUDPServer1和IdUDPClient1控件实现通信检测
    xp不能安装NET Framework4.0解决方法
    基于TCP的Socket连接【Delphi版】
    牛客网优惠码
    GitHub基本操作
    xdb-test
    设置本地yum源
  • 原文地址:https://www.cnblogs.com/bingguang/p/4500918.html
Copyright © 2020-2023  润新知