EF用ajax写添加,MVC3+EF5.0 code first+Flexigrid+ajax请求+jquery dialog 增删改查

本文的目的:

1、MVC3项目简单配置EF code first生成并初始化数据库。

2、利用flexigrid展示并使用ajax展示数据,支持显示列增减,显示列排序,显示列模糊查询,熟悉表格控件的使用。

3、利用jquery ajax请求实现增删查改

4、利用jquery dialog弹出层实现添加,修改。

5、扩展方法及表达式树构建lambda表达式

项目截图说明

769ef0807833e2fbd421ce37557fb5e8.png

d937654d7ee3719af53bcc32cb08a8c8.png

382a1fe48f31ee78445d9807c6294a28.png

附flexigrid参数说明(可以去flexigrid.js文件中查看配置):

height: 200, //flexigrid插件的高度,单位为px

'auto', //宽度值,auto表示根据每列的宽度自动计算,在IE6下建议设置具体值否则会有问题

striped: true, //是否显示斑纹效果,默认是奇偶交互的形式

novstripe: false,//没用过这个属性

min 30, //列的最小宽度

minheight: 80, //列的最小高度

resizable: false, //resizable table是否可伸缩

url: false, //ajax url,ajax方式对应的url地址

method: 'POST', // data sending method,数据发送方式

dataType: 'json', // type of data loaded,数据加载的类型,xml,json

errormsg: '发生错误', //错误提升信息

usepager: false, //是否分页

nowrap: true, //是否不换行

page: 1, //current page,默认当前页

total: 1, //total pages,总页面数

useRp: true, //use the results per page select box,是否可以动态设置每页显示的结果数

rp: 25, // results per page,每页默认的结果数

rpOptions: [10, 15, 20, 25, 40, 100], //可选择设定的每页结果数

title: false, //是否包含标题

pagestat: '显示记录从{from}到{to},总数 {total} 条', //显示当前页和总页面的样式

procmsg: '正在处理数据,请稍候 ...', //正在处理的提示信息

query: '', //搜索查询的条件

qtype: '', //搜索查询的类别

qop: "Eq", //搜索的操作符

nomsg: '没有符合条件的记录存在', //无结果的提示信息

minColToggle: 1, //允许显示的最小列数

showToggleBtn: true, //是否允许显示隐藏列,该属性有bug设置成false点击头脚本报错。

hideOnSubmit: true, //是否在回调时显示遮盖

showTableToggleBtn: false, //是否显示【显示隐藏Grid】的按钮

autoload: true, //自动加载,即第一次发起ajax请求

blockOpacity: 0.5, //透明度设置

onToggleCol: false, //当在行之间转换时,可在此方法中重写默认实现,基本无用

onChangeSort: false, //当改变排序时,可在此方法中重写默认实现,自行实现客户端排序

onSuccess: false, //成功后执行

onSubmit: false, // 调用自定义的计算函数,基本没用

实现步骤

1、配置EF5.0 code first生成并初始化数据库

首先在项目中添加对EF5.0的引用,获取方式可以通过nuget包管理器添加或者通过控制台添加,这里给出一种方式的截图。

a1cb747912c8cbc20b82488f6c96edc4.png

编写实体类(代码中有注释说明):

8f900a89c6347c561fdf2122f13be562.png View Code

编写数据库上下文:

8f900a89c6347c561fdf2122f13be562.png View Code

此处注意若是不指定数据库连接字符串名称,在web.config中只需将连接字符串的名称与数据库上下文类的名称一样即可。

连接字符串:

编写数据库表初始化数据填充类:

8f900a89c6347c561fdf2122f13be562.png View Code

至此,EF生成数据库配置完成,我们只需在controller中随便写一个方法调用一下,便可在数据库中自动生数据库及表,并初始化数据。

2、配置Flexigrid

在模板页中添加对jquery等js的引用

首先我们在HomeController中为Index添加一个视图,在此视图中配置flxigrid。

index页面显示代码:

8f900a89c6347c561fdf2122f13be562.png View Code

flexigrid的配置说明参考前文给出的配置及js中的配置说明,下面给出重点几处的说明:

$('#students').flexigrid()将指定表格转化成flexigrid控件

url: '/Home/FlexigridList',后台返回表格ajax数据的方法,datatype为json数据类型

colModel:配置显示列名称,后台返回对应的数据列,大小,是否排序,位置等

buttons:工具栏按钮

searchitems:设置需要查询的列

其他配置不做说明(checkbox有问题。)

配置完成以后,运行程序现在便能程序出flexigrid的样子了。

接下来我们为根据某一显示列排序及模糊查询扩展两个IQueryable的扩展方法,代码如下:

8f900a89c6347c561fdf2122f13be562.png View Code

后台Home/FlexigridList获取数据的方法(代码中有详细说明)

8f900a89c6347c561fdf2122f13be562.png View Code

此方法的重点在于去前台参数值,根据某一字段构建排序及模糊查询,返回前台需要的json数据等。

文章到此为止,如果程序正确前台按自定列排序,查询,显示数据等都应该正常。

3、实现增删改

点击flexigrid的添加和修改按钮,通过jquery 的ajax请求,将添加及修改页面加载到jquery dialog中。demo中单独为此了一个 js函数,代码如下

48304ba5e6f9fe08f3fa1abda7d326ab.png

function AddOrEdit(ids) {

$.ajax({

type: "GET",

url: "/home/AddStudent?id="+ids,

success: function (html) {

$("

").html(html)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值