这里提到了,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="">
<span name="OperationSpan" style="cursor: pointer">编辑模式</span>
<input type="radio" name="OperationType" value="">
<span name="OperationSpan" style="cursor: pointer">拖拽模式</span>
<table id="MenuTree" title="Menu" class="easyui-treegrid" style="height: 700px; width: 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 = ; 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 == "") {
$('#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 == "") {
} else {
document.getElementsByName('OperationType')[].checked = true;
$('#MenuTree').treegrid('endEdit', SelectId);
$('#MenuTree').treegrid('enableDnd');
}
}); $("[name='OperationSpan']").click(function () {
if (this.innerText == "编辑模式") {
OperationType = "";
document.getElementsByName('OperationType')[].checked = true;
} else {
OperationType = "";
document.getElementsByName('OperationType')[].checked = true;
$('#MenuTree').treegrid('endEdit', SelectId);
$('#MenuTree').treegrid('enableDnd');
}
}); document.getElementsByName('OperationType')[].checked = true;// 设置默认为编辑模式
});
</script>

效果图:

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

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

.net mvc mssql easyui treegrid 及时 编辑 ,支持拖拽的更多相关文章

  1. .net mvc mssql easyui treegrid

    效果图 数据图   可以看到 这里是根据 MenuNo 来 分级别的,支持 无限极,第一级是 01 ,第二级就是 01XX ,第三级 就是 01XXOO.类似 id.pid ,Ztree 里面 也是这 ...

  2. GMF Q&A(1): 如何让palette支持拖拽(DnD)等10则

    1,如何让palette支持拖拽(DnD) 在*PaletteFactory类中,把私有类NodeToolEntry 和LinkToolEntry的基类修改为PaletteToolEntry.并在构造 ...

  3. 一个可以自由定制外观、支持拖拽消除的MaterialDesign风格Android BadgeView

    为了尊重作者,先放上链接:https://github.com/qstumn/BadgeView BadgeView 一个可以自由定制外观.支持拖拽消除的MaterialDesign风格Android ...

  4. 关于安装了VMware tools后仍然不支持拖拽文件的问题

    我在学校机房里面的redhat4上面安装了VMware tools之后能正常支持拖拽,但是我自己电脑上的却不支持,折腾了好久,网上找了很久也还是没有解决,不过发现了一些问题,总结如下:(当然我总结的这 ...

  5. 让一个view 或者控件不支持拖拽

    让一个view 或者控件不支持拖拽: dragView.userInteractionEnabled = NO;

  6. jQuery插件之路(三)——文件上传(支持拖拽上传)

    好了,这次咱一改往日的作风,就不多说废话了,哈哈.先贴上源代码地址,点击获取.然后直接进入主题啦,当然,如果你觉得我有哪里写的不对或者欠妥的地方,欢迎留言指出.在附上一些代码之前,我们还是先来了解下, ...

  7. Qt无边框窗体-最大化时支持拖拽还原

    目录 一.概述 二.效果展示 三.demo制作 1.设计窗体 2.双击放大 四.拖拽 五.相关文章 原文链接:Markdown模板 一.概述 用Qt进行开发界面时,既想要实现友好的用户交互又想界面漂亮 ...

  8. PyQt5控件支持拖拽方法

    让控件支持拖拽动作A.setDragEnable(True) 设置A可以拖动B.setAcceptDrops(True) 设置B可以接受拖动B需要满足两个事件1.dragEnterEvent 将A拖到 ...

  9. WinForm支持拖拽效果

    有一个MSDN客户提问在WinForm中如何实现拖拽效果——比如在WinForm中有一个Button,我要实现的效果是拖拽这个Button到目标位置后生成一个该控件的副本. 其实这个操作主要分成三步走 ...

随机推荐

  1. ZenCoding for EmEditor Snippets 的安装

    ZenCoding for EmEditor的安装 你可以从这里下载所需文件Library under the Snippets category.安装前请确认你的EmEditor内置有代码片段(Sn ...

  2. TCMalloc 安装与使用

    TCMalloc 安装和使用 Author:Echo Chen(陈斌) Email:chenb19870707@gmail.com Blog:Blog.csdn.net/chen19870707 Da ...

  3. POJ3467(预处理)

    Cross Counting Time Limit: 1000MS   Memory Limit: 131072K Total Submissions: 1331   Accepted: 375 De ...

  4. 警告: git command could not be found. Please create an alias or add it to yo

    5 Answers active answertab=oldest#tab-top" title="Answers in the order they were provided& ...

  5. boostrap-非常好用但是容易让人忽略的地方------row

    row是非常好用但是却非常容易忽略的地方. 想实现内部元素相对父级的padding=0,则在父子中间加个row.如下图 列嵌套也是同样的道理 经验之谈:学会row的用法,在手机版布局的时候会很方便,否 ...

  6. UVa 11205 - The broken pedometer

    称号:给你p一个LED在同一个显示器组成n一个.显示每个显示器上的符号(LED的p长度01串) 问:用最少p几个比特位,您将能够这些区分n不同的符号.同样不能(其他位置上设置0处理) 分析:搜索.枚举 ...

  7. Entity Framework笔记(一)

    最近在看MVC方面的资料,看了几个教程都在使用Entity Framework做数据持久化.之前也听说过这个东西,在微软的网站上看过一个演示视频,但都没怎么去仔细研究.MVC的东西太庞大了,先慢慢熟悉 ...

  8. ContentProvider总结(Android)

    ContentProvider 1.适用场景 1) ContentProvider为存储和读取数据提供了统一的接口 2) 使用ContentProvider,应用程序能够实现数据共享 3) andro ...

  9. JavaEE(9) - Session EJB的生命周期、事务及拦截器

    1. SessionBean的生命周期 无状态Session Bean: 不存在状态-->待命状态-->被销毁状态 不存在状态-->待命状态: 1)通过构造器创建EJB实例 2)执行 ...

  10. 在域信任环境中使用 Team Foundation Server (TFS 2013)

    原文:在域信任环境中使用 Team Foundation Server (TFS 2013) 1. 用户情景和方案: XX公司的大部分软件产品通过软件外包的方式由开发商完成.为加强对软件开发的进度和质 ...