前言

继上文对网格加载数据,本文主要阐述对数据增删改的实现。
一、js代码
  1. function Add() {
  2. $("#dlg").dialog('open');
  3. $("#dlg-form").form('clear');
  4. url = "Home/Add";
  5. }
  6. function Edit() {
  7. var selectedRow = $("#dg").datagrid('getSelected');
  8. if (selectedRow) {
  9. $("#dlg").dialog('open');
  10. $("#dlg-form").form('load', selectedRow);
  11. url = "Home/Edit";
  12. } else {
  13. $.messager.alert('消息提醒', '请先选中某行!', 'info');
  14. }
  15. }
  16. function Save() {
  17. $("#dlg-form").form('submit', {
  18. url: url,
  19. onSubmit:function(){
  20. return $(this).form('validate');
  21. },
  22. success: function (result) {
  23. if (result == "OK") {
  24. $("#dlg").dialog('close');
  25. Reload();
  26. $.messager.alert('消息提醒', '保存成功!', 'info');
  27. } else {
  28. $.messager.show({
  29. title: '提示',
  30. msg: '保存失败!'
  31. });
  32. }
  33. }
  34. });
  35. }
  36. function Delete() {
  37. var row = $("#dg").datagrid('getSelected');
  38. if (row) {
  39. var ProductID = row.ProductID;
  40. $.messager.confirm('确认对话框', '是否删除?', function (r) {
  41. if (r) {
  42. $.ajax({
  43. url: "Home/Delete",
  44. type: 'POST',
  45. data: { ProductID: ProductID },//注意data格式
  46. success: function (result) {
  47. Reload();
  48. $.messager.alert('消息提醒', result, 'info');
  49. }
  50. });
  51. }
  52. });
  53. } else {
  54. $.messager.alert('消息提醒', '请先选中某行!', 'info');
  55. }
  56. }
这里也是利用easyui实现窗口的打开关闭,还有表单数据加载等功能。
二、后台代码
  1. public ActionResult Add(Products product)
  2. {
  3. var check = sse.Products.Any(x=>x.ProductID==product.ProductID);
  4. if (check)
  5. {
  6. return Content("产品ID"+product.ProductID+"已经存在!");
  7. }
  8. else {
  9. sse.Products.Add(product);
  10. sse.SaveChanges();
  11. return Content("OK");
  12. }
  13. }
  14. public ActionResult Edit(Products product)
  15. {
  16. var check = sse.Products.Where(x => x.ProductID == product.ProductID).Count();
  17. if (check>=2)
  18. {
  19. return Content("产品ID" + product.ProductID + "重复2次!");
  20. }
  21. else
  22. {
  23. var findProduct = sse.Products.FirstOrDefault(x => x.ProductID == product.ProductID);
  24. try {
  25. findProduct.ProductID = product.ProductID;
  26. findProduct.Name = product.Name;
  27. findProduct.Description = product.Description;
  28. findProduct.Category = product.Category;
  29. findProduct.Price = product.Price;
  30. //sse.Entry(findProduct).CurrentValues.SetValues(product);
  31. sse.SaveChanges();
  32. return Content("OK");
  33. }catch(Exception e){
  34. throw e;
  35. }
  36. }
  37. }
  38. public ActionResult Delete(int ProductID)
  39. {
  40. var delID=sse.Products.FirstOrDefault(x=>x.ProductID==ProductID);
  41. if (delID == null)
  42. return Content("找不到此信息!");
  43. sse.Products.Remove(delID);
  44. sse.SaveChanges();
  45. return Content("删除成功!");
  46. }
这里是运用了Entity Framework的功能,ADO.NET Entity Framework操作数据库的过程对用户是透明的(当然我们可以通过一些工具或方法了解发送到数据库的SQL语句等)。我们唯一能做的是操作EDM,EDM会将这个操作请求发往数据库。
PS:删除时应用了Remove()方法来删去实体,要求实体以另一种状态存在于上下文,不是很理解,刚开始传递的是整个Product实体,结果出错了,改成传递ProductID,再查询出实体,则不会出错。
总结
至此,全部功能完成,第一次实现了MVC和EasyUI的结合,虽然是一个小例子,但是感觉自己对MVC开发有了一次大的进步了,继续加油。

【MVC+EasyUI实例】对数据网格的增删改查(下)的更多相关文章

  1. jQuery EasyUI/TopJUI实现数据表格的增删改查功能(不写js,纯HTML实现!!!)

    jQuery EasyUI/TopJUI实现数据表格的增删改查功能(不写js,纯HTML实现!!!) 废话不多说,直接贴上代码 <table id="configEdatagrid&q ...

  2. 【MVC+EasyUI实例】对数据网格的增删改查(上)

    前言 此案例是针对之前做的一个小例子的后台框架的修改,从以前的三层框架改为现在的MVC框架,也是做了一次MVC和EasyUI的结合,分为2篇文章来阐述. 界面如下: 点击"添加"按 ...

  3. Easyui datagrid扩展子网格detailview增删改查详解

    话不多gang,先上代码,将以下三个属性插入主网格的初始化参数中: view : detailview, //1 detailFormatter : function(index, row) { // ...

  4. MySQL数据分析(16)— 数据操作之增删改查

    前面我们说学习MySQL要从三个层面,四大逻辑来学,三个层面就是库层面,表层面和数据层面对吧,数据库里放数据表,表里放数据是吧,大家可以回忆PPT中jacky的这图,我们已经学完了库层面和表层面,从本 ...

  5. mvc模式jsp+servel+dbutils oracle基本增删改查demo

    mvc模式jsp+servel+dbutils oracle基本增删改查demo 下载地址

  6. mvc模式jsp+servel+jdbc oracle基本增删改查demo

    mvc模式jsp+servel+jdbc oracle基本增删改查demo 下载地址

  7. AngularJS中使用$http对MongoLab数据表进行增删改查

    本篇体验使用AngularJS中的$http对MongoLab数据表进行增删改查. 主页面: <button ng-click="loadCourse()">Load ...

  8. Mysql数据表的增删改查

    ---恢复内容开始--- Mysql数据表的增删改查 1.创建表   语法:CREATE TABLE 表名(字段1,字段2,字段3.......) CREATE TABLE `users` ( `us ...

  9. C# - VS2019 通过DataGridView实现对Oracle数据表的增删改查

    前言 通过VS2019建立WinFrm应用程序,搭建桌面程序后,通过封装数据库操作OracleHelper类和业务逻辑操作OracleSQL类,进而通过DataGridView实现对Oracle数据表 ...

随机推荐

  1. Maven debug异常:Source not found.

    异常 用Maven debug 时出现了Source not found.,在调试过程中尝试添加源码也没有效果 解决方案 先把当前正在运行中的项目停止 右键项目 -> Debug As -> ...

  2. Horizontal Pod Autoscaler(Pod水平自动伸缩)

    Horizontal Pod Autoscaler 根据观察到的CPU利用率(或在支持自定义指标的情况下,根据其他一些应用程序提供的指标)自动伸缩 replication controller, de ...

  3. CSS 故障艺术

    本文的主题是 Glitch Art,故障艺术. 什么是故障艺术?我们熟知的抖音的 LOGO 正是故障艺术其中一种表现形式.它有一种魔幻的感觉,看起来具有闪烁.震动的效果,很吸引人眼球. 故障艺术它模拟 ...

  4. 读取纯真IP数据库

    #define _CRT_SECURE_NO_WARNINGS #include <iostream> #include <string> #include <stdli ...

  5. 机器学习(ML)十二之编码解码器、束搜索与注意力机制

    编码器—解码器(seq2seq) 在自然语言处理的很多应用中,输入和输出都可以是不定长序列.以机器翻译为例,输入可以是一段不定长的英语文本序列,输出可以是一段不定长的法语文本序列,例如 英语输入:“T ...

  6. LeetCode 126. Word Ladder II 单词接龙 II(C++/Java)

    题目: Given two words (beginWord and endWord), and a dictionary's word list, find all shortest transfo ...

  7. The related functions and attributes for managing attributes - 操作属性的重要属性和函数

    特性 property 都是类属性(静态变量),但是特性管理的其实是实例属性的存取, ****** 回顾 -'类方法' classmethod 和 '静态方法' staticmethod 皆可以访问类 ...

  8. PyObject and PyTypeObject - Python 中的 '对象' 们

    1 PyObject, PyTypeObject - Python 中的 '对象' 们 '一切皆对象' - 这是 Python 的学习和使用者们最最常听到一句, 可谓 博大精深 - '勃大精深'. ' ...

  9. javascript 动态加载javascript文件

    /* loadFile(data, callback): 动态加载js文件 data: 存放需要加载的js文件的url("url" || ["url", &qu ...

  10. 工作五年的.neter的一些经历感想和对未来的一些疑惑

    本次疫情在家办公快一个月了,节省了上下班的时间,外出活动时间,感觉有好多时间可以利用.人一闲下来就容易想事情,很多事情想不通心里堵的厉害,做事都提不起兴趣.至于想些什么呢,我给大家摆一下. 我的经历 ...