Easyui+MVC行内编辑
来源:互联网 发布:优化设计 编辑:程序博客网 时间:2024/06/06 18:09
在.NET中进行行内编辑,主要适用于从表的编辑,删除,增加和批量提交。一般主表不做此种应用,适个人的具体情况使用。
因为是在Easyui基础上开发的, 所以里边调用了大量的Easyui方法,不懂得可以看资料里边的Easyui中文版,获取自己从网上找一下资源。
直接先上效果图
下边是步骤,很详细很详细的步骤呦。
1、先加一个列表
<body> <table id="custromList"></table> </body>
2、书写显示的内容
<script type="text/javascript"> $(function () { $("#custromList").datagrid({ fit: true, title: '顾客信息表', striped: true, //下划线 url: '@Url.Action("GetAll")', rownumbers: true,//行数 border: false, //边框 columns: [[ { field: 'ID', title: '编号', hailgn: 'center', align: 'center', width: 100 }, { field: 'C_name', title: '顾客姓名', hailgn: 'center', align: 'center', width: 200, editor: { type: "validatebox", options: { required: true } } }, { field: 'C_age', title: '顾客年龄', hailgn: 'center', align: 'center', width: 200, editor: { type: "numberbox", options: { required: true } }, }, { field: 'C_date', title: '出生年月', hailgn: 'center', align: 'center', formatter: formatDatebox, width: 200, editor: { type: "datebox", options: { required: true } } }, { field: 'action', title: '操作', hailgn: 'center', align: 'center', formatter: formatDatebox, width: 200, }, ]], }); });
上边是显示的代码,我说一下需要注意的几个点。
(1)在你的每个字段后边加上编辑editors,他的作用是定义在编辑行的时候使用的编辑器。
(2)URL调的方法是获取所有值,这个需要自己写,因为每个人写的可能都不一样哦,根据自己的项目写。
3、添加操作的按钮。
在上文显示的操作里边,加入编辑和删除按钮。
formatter: function (value, row, index) { if (row.editing == true) { return "<a href='#' onclick='saveRow(" + index + ")'>确认</a> <a href='#' onclick='reRow(" + index + ")'>取消</a>" } else { return "<a href='#' onclick='editRow(" + index + ")'>编辑</a> <a href='#' onclick='deleteRow(" + index + ")'>删除</a>" } }
这是easyui中的一种写法,可以自己进行一些修改。放在上文操作显示的里边就行。里边设计的编辑方法、删除方法、确定方法、取消方法如下:
function editRow(index) { $('#custromList').datagrid('beginEdit', index);//开始编辑行。 }
function saveRow(index) { $('#custromList').datagrid('endEdit', index); }
function deleteRow(index) { $.messager.confirm('确认', '确定要删除吗?', function (r) { if (r) { $('#custromList').datagrid('deleteRow', index); } }); }
function reRow(index) { $('#custromList').datagrid('cancelEdit', index); }
endEdit和beginEdit可以查阅Easyui的相关文档。
在这些执行以后,应该你点击按钮可能会有一些反应了,但是你还少几个方法的配合,那就是告诉系统在你编辑前,编辑中,编辑后做些什么。
//触发前触发 onBeforeEdit: function (index, row){ row.editing = true;$('#custromList').datagrid('refreshRow', index);},//完成编辑后触发onAfterEdit: function (index, row){row.editing = false;$('#custromList').datagrid('refreshRow', index);},//取消编辑后触发 onCancelEdit:function(index,row) { row.editing = false; $('#custromList').datagrid('refreshRow', index); }
4、添加的实现
现在肯定有反应了,这个时候你需要添加功能的实现了。
对了,上边的三个方法是在首次加载里边哦。
<a class="easyui-linkbutton" iconcls="icon-add" onclick="addRow();">添加</a>
在你的Table上边加上这个按钮。如果嫌样式的问题,可以自行查看easyui文档。
添加的方法:
function addRow() { $('#custromList').datagrid('appendRow', {});//追加一个新行。新行将被添加到最后的位置。 var lastRowIndex=$('#custromList').datagrid('getRows').length-1;//返回当前页的最后一行。 $('#custromList').datagrid('beginEdit', lastRowIndex);//开始编辑行。 }
5、提交
最后一个功能也是最重要的功能,那就是提交数据了,毕竟之前的不管是添加,还是修改,删除,都是在前台的缓存,并没有真的把他们存到了数据库中,你还需要一个功能进行提交服务器哦。
<a class="easyui-linkbutton" iconcls="icon-save" onclick="Save();">批量提交</a>
先在添加旁边加个按钮哦。
保存的方法:
function Save() {var len = $('#custromList').datagrid('getChanges').length;if (len > 0) { var inserted = $("#custromList").datagrid('getChanges',"inserted");//获取新添加的行var deleted = $("#custromList").datagrid('getChanges',"deleted");//获取删除的行var updated = $("#custromList").datagrid('getChanges',"updated");//获取修改的行var data = {};data.Inserted = inserted;data.Deleted = deleted;data.Updated = updated;$.ajax({url: '@Url.Action("Save")', type: 'POST',data: JSON.stringify(data),contentType: "application/json; charset=utf-8",dataType: "json", success: function (msg) { alert(msg.msg); } });} else { alert("没有发生变化的数据!"); return; }}
这个有一个后台的方法,就是提交三个方法,我也是想了会写的,我贴出来,希望对你的代码有帮助。
public ActionResult Save(Customers ps) { string state = "true"; string msg = "提交成功"; if (ps.Inserted != null) { foreach (var item in ps.Inserted) { Bll.Add(item); } } else if (ps.Deleted !=null) { foreach (var item in ps.Deleted) { Bll.Delete(x => x.ID == item.ID); } } else if (ps.Updated !=null) { foreach (var item in ps.Updated) { Bll.Modify(item); } } else { state = "false"; msg = "提交失败"; } return Json(new { state = state, msg = msg }); }
对了,忘了一个重要的,我还在UI层中建了一个类,来放他的添加,删除,修改。
public List<CO.Model.Customer> Inserted { get; set; } public List<CO.Model.Customer> Deleted { get; set; } public List<CO.Model.Customer> Updated { get; set; }
这样下来,一个基于easyui的行内编辑就实现啦,还有什么不了解的,可以评论哦,或者有补充意见也可以留言哦,欢迎评论。
- Easyui+MVC行内编辑
- EasyUI-Datagrid行内编辑
- easyui---- 行内编辑、删除
- easyUI的行内编辑editor
- easyui实现datagrid行内编辑
- [转载]easyui datagrid 行内编辑功能
- easyui-datagrid 行内编辑禁止字段可编辑
- easyui 数据表格行内编辑(编辑、保存、删除)
- easyui datagrid行内编辑时的数据联动
- Easyui datagrid行内【添加】、【编辑】、【上移】、【下移】
- Easyui datagrid行内【添加】、【编辑】、【上移】、【下移】
- Easyui datagrid行内【添加】、【编辑】、【上移】、【下移】
- easyui datagrid实现行内编辑一列数据
- ASP.NET MVC5+EF6+EasyUI 后台管理系统(83)-Easyui Datagrid 行内编辑扩展
- easyui datagrid 行编辑功能(行内编辑、删除、保存、取消)
- MVC+Easyui+EF datagrid数据编辑(5)
- easyui行编辑
- easyui 行编辑
- window下安装gvim
- ES6中的变量 let 和const的区别
- LeetCode_Easy心得:13. Roman to Integer (C语言)
- 《技术之瞳》- 操作系统
- UVA10082WERTYU
- Easyui+MVC行内编辑
- 详解捕获异常的try-catch-finlly语句
- spring boot集成mybatis-generator-maven-plugin和通用mapper
- Python学习笔记——私有化
- git--分支管理
- 以太坊被盗,回顾一下这几年发生的安全事件
- UVA-1583Digit Generator
- 数据库学习(三)----基础查询和关联查询
- Stones