前言

继上文对网格加载数据,本文主要阐述对数据增删改的实现。
一、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. springcloud ActiveMQ设置多个并行消费者

    还是结合实际项目说把,最近在做跟保险公司和第三方借贷平台对接的项目: 其中需要第三方借贷平台借款并和保险挂对勾,也就是每次借钱的时候可以做一次保: 这里面正常情况下的逻辑场景: 借贷平台:借贷审核通过 ...

  2. 通过openjdk源码分析ObjectMonitor底层实现

    通过openjdk源码分析ObjectMonitor底层实现 Hotspot JDK只是部分开源,将底层的调用C++的native方法的具体实现屏蔽了,而openjdk则将这部分也开源了,接下来我们通 ...

  3. Spring Boot入门简介-Maven配置

    一.简介 -- 简化Spring应用开发的一个框架: -- 整个Spring技术栈的一个大整合: -- J2EE开发的一站式解决方案. 二.背景: ① J2EE笨重的开发.繁多的配置.低下的开发效率. ...

  4. 微信小程序框架分析小练手(三)——仿香哈菜谱小程序制作

    香哈菜谱是一款围绕美食而成的小程序,在这里可以查看各式各样的菜谱. 一.打开微信开发者工具,新建一个项目:xhcp.如下图: 二.建立如下的一些目录: 三.将底部标签导航图标.美食轮播图片.宫格导航图 ...

  5. MSVC下快速Unicode I/O

    http://blog.kingsamchen.com/archives/863 如果需要往console输出包含非ASCII字符的宽字符串,一个比较快速的方法是使用WriteConsoleW这个AP ...

  6. Codeforces_807

    A. 严格按照题目给的两个条件来. #include<bits/stdc++.h> using namespace std; ],b[]; int main() { ios::sync_w ...

  7. HDU_1166_树状数组

    http://acm.hdu.edu.cn/showproblem.php?pid=1166 树状数组入门题. #include<iostream> #include<cstring ...

  8. 《C# 爬虫 破境之道》:第二境 爬虫应用 — 第四节:小说网站采集

    之前的章节,我们陆续的介绍了使用C#制作爬虫的基础知识,而且现在也应该比较了解如何制作一只简单的Web爬虫了. 本节,我们来做一个完整的爬虫系统,将之前的零散的东西串联起来,可以作为一个爬虫项目运作流 ...

  9. 1 使用MySQL

    1.1 连接 主机名(localhost) 端口(3306) 一个合法的用户名 用户口令 1.2 选择数据库 USE crashcourse 1.3 了解数据库和表 SHOW databases; s ...

  10. Spring学习笔记:使用Pointcut 和Advisor实现AOP

    基础知识 在 Spring AOP 中,有 3 个常用的概念,Advices . Pointcut . Advisor ,解释如下: Advices :表示一个 method 执行前或执行后的动作. ...