ASP.NET MVC+EF框架+EasyUI实现权限管理系列(5)-前台JqueryEasyUI前台实现

时间:2021-07-16 20:28:41

原文:ASP.NET MVC+EF框架+EasyUI实现权限管理系列(5)-前台JqueryEasyUI前台实现

   ASP.NET MVC+EF框架+EasyUI实现权限管系列 (开篇)   (1):框架搭建    (2):数据库访问层的设计Demo    (3):面向接口编程   (4 ):业务逻辑层的封装

  前言:今天经理买了一个诺基亚的Windows Phone 8系统,特感兴趣,所以在哪里看了很长时间,这篇文章就写的有点迟, 从这个Demo开始到现在我已经写了4篇博客了,终于可以看到页面的东西了,当然这相对于这个项目来说的话那时小巫见大巫了,权限项目还没有开始写呢,当然前面的这些基础是最终要的,所以我写的很慢,而且组织句子真心不容易,这不是说知识点,而是直接将项目往上写,写的太宽了,怕大家看不懂,所以写的比较详细,但是皇天不负苦心人,现在这个Demo的后台基本写完了,现在我们开始使用easyUI设计前台的页面,很快我们就能够看到效果了。废话不多说了,下面我们开始我们的征程。

1. 实现用户(UserInfo)的增删改查

(1)当我们开始着手设计前台页面的时候,我们先要下载到easyUI的官方Demo,然后我们在LYZJ.UserLimitMVC.UI.Portal项目中添加UserInfoController控制器,添加完控制器后,会有一个Index方法,最后我们在Index方法上面添加一个视图(View),这时候我们就要在前台写easyUI的代码了,所以我们就将easyUI的Demo放到我们的项目里面,方便我们的使用。

(2)我们在项目的Content文件夹下面新建一个JqueryeasyUI文件夹,然后将easyUI的所有项目都拷贝过来存放到此文件夹下面。

(3)这时候我们的项目配置就完成了,下面看一下我们的文件是如何存放在里面的,截图所示:

  ASP.NET MVC+EF框架+EasyUI实现权限管理系列(5)-前台JqueryEasyUI前台实现

(4)当添加easyUI的时候每个人的编程习惯或者说公司的规定都会有一定的说明,我这样添加是一种方法,还有一种方法就是“各就各位”,也就是说JS文件就放到Jquery文件夹下面,而其他文件放到content文件夹下面,但是这样的话我觉得用起来有点乱,所以我就这样放置了,大家喜欢怎么样就怎么样来放置。

2.使用easyUI实现用户的增删改查的页面Index.cshtml

(1)因为这里是使用easyUI来实现的页面,所以我就不解释了,因为我使用的时easyUI的DataGird控件,所以我们到easyUI的Demo里面找到这个页面,然后对这个页面进行复制,修改操作即可,当然我的前台代码我也给了非常详细的注释,大家可以参考一下。下面我就展示一下代码:

 @{

     Layout = null;

 }

 <!DOCTYPE html>

 <html>

 <head>

     <meta name="viewport" content="width=device-width" />

     <title>实现用户的增删改查</title>

     @*添加Jquery EasyUI的样式*@

     <link href="~/Content/JqueryEasyUI/themes/default/easyui.css" rel="stylesheet" />

     <link href="~/Content/JqueryEasyUI/themes/icon.css" rel="stylesheet" />

     @*添加Jquery,EasyUI和easyUI的语言包的JS文件*@

     <script src="~/Content/JqueryEasyUI/jquery-1.8.0.min.js"></script>

     <script src="~/Content/JqueryEasyUI/jquery.easyui.min.js"></script>

     <script src="~/Content/JqueryEasyUI/locale/easyui-lang-zh_CN.js"></script>

     @*实现对EasyUI的DataGird控件操作的JS代码*@

     <script type="text/javascript">

         $(function () {

             //当页面首次刷新的时候执行的事件

             initTable();

         });

         //实现对DataGird控件的绑定操作

         function initTable() {

             $('#test').datagrid({   //定位到Table标签,Table标签的ID是test

                 //   UserInfo是控制器,GetAllUserInfos是控制器中获取用户数据的一个Action

                 url: '/UserInfo/GetAllUserInfos',   //指向后台的Action来获取当前用户的信息的Json格式的数据

                 title: '用户的展示',  //标识

                 //下面的这些属性如果谁不太清楚的话我建议去官方网站去学习或者在群里我们讨论,这里就不说了

                 iconCls: 'icon-save',

                 width: ,

                 height: ,

                 nowrap: true,

                 autoRowHeight: false,

                 striped: true,

                 collapsible: true,

                 pagination: true,

                 rownumbers: true,

                 sortName: 'ID',

                 sortOrder: 'desc',

                 remoteSort: false,

                 idField: 'ID',

                 frozenColumns: [[

                     { field: 'ck', checkbox: true },

                     { title: '主键', field: 'ID', width: , sortable: true },

                     { title: '用户名', field: 'UName', width: , sortable: true },

                     { title: '密码', field: 'Pwd', width: , sortable: true }

                 ]],

                 toolbar: [{

                     id: 'btnadd',

                     text: '添加',

                     iconCls: 'icon-add',

                     handler: function () {

                         $('#btnsave').linkbutton('enable');

                     }

                 }, {

                     id: 'btncut',

                     text: '修改',

                     iconCls: 'icon-cut',

                     handler: function () {

                         $('#btncut').linkbutton('enable');

                     }

                 }, '-', {

                     id: '删除',

                     text: 'Save',

                     iconCls: 'icon-cancel',

                 }]

             });

         }

     </script>

 </head>

 <body>

     <div>

         <!-----------------------EasyUI的DataGird控件的放置----------------------->

         <table id="test" style="width: 700px" title="用户操作" iconcls="icon-edit">

         </table>

     </div>

 </body>

 </html>

3.控制器实现获取用户信息的Action方法

(1)当我们构造好前台之后,这时候我们就需要实现后台的操作的方法,我们在前台的EasyUI里面有一个URL属性,传递的就是控制器下面的方法,我们在写的时候也要对应和这个设置一摸一样,不然的话默认会找不到。

(2)当我们操作控制器的时候我们需要使用前面几篇博客中实现的业务逻辑层的一些东西,所以我们这里需要添加一些引用,LYZJ.UserLimitMVC.IBLL,LYZJ.UserLimitMVC.BLL,LYZJ.UserLimitMVC.Model

(3) 当我们需要操作项目的View视图的时候,我们是需要和数据库进行交互的,那麽我们怎么讲数据库中的信息注册到项目中去呢,这里有一个很简单的方法就是我们在MVC的Model层添加ADO.NET实体模型的空模型,当我们添加完成之后我们在讲这个模型删除即可,然后我们再修改web.config中的内容,首先我们找到LYZJ.UserLimitMVC.Model类库下面的App.Config,然后我们复制下面的这段代码:

   <connectionStrings>

     <add name="DataModelContainer" connectionString="metadata=res://*/DataModel.csdl|res://*/DataModel.ssdl|res://*/DataModel.msl;provider=System.Data.SqlClient;provider connection string=&quot;data source=HYL;initial catalog=LYZJShopDB;persist security info=True;user id=sa;password=saa;MultipleActiveResultSets=True;App=EntityFramework&quot;" providerName="System.Data.EntityClient" />

   </connectionStrings>

  到我们的项目的Web.Config中的<configuration>节点下面,然后注释刚才我们自动生成connectionString节点,这时候我们的数据库等的配置就完成了。

(4) 下面我们再数据库中输入几条数据,进行测试,因为我们的项目含有分页,所有我建议往数据库中手动添加数据超过10条以上。

(5) 我们在书写控制器的时候也一定要使用接口编程。

(6) 下面就是我控制器中实现的方法,代码贴出来大家指点一下

 namespace LYZJ.UserLimitMVC.UI.Portal.Controllers

 {

     public class UserInfoController : Controller

     {

         //在这里也需要依赖接口编程

         private IBLL.IUserInfoService _userInfoService = new UserInfoService();

         public ActionResult Index()

         {

             return View();

         }

         public ActionResult GetAllUserInfos()

         {

             //Json格式的要求{total:22,rows:{}}

             //实现对用户分页的查询,rows:一共多少条,page:请求的当前第几页

             int pageIndex = Request["page"] == null ?  : int.Parse(Request["page"]);

             int pageSize = Request["rows"] == null ?  : int.Parse(Request["rows"]);

             int total = ;

             //调用分页的方法,传递参数,拿到分页之后的数据

             var data = _userInfoService.LoadPageEntities(pageIndex, pageSize, out total, u => true, true, u => u.ID);

             //构造成Json的格式传递

             var result = new {total = total, rows = data};

             return Json(result, JsonRequestBehavior.AllowGet);

         }

     }

 }

(7)上面代码我们虽然已经贴出来了,但是我们不知道对不对,这时候我们启动浏览器直接去访问这个控制器下面的方法来获得Json数据,然后我们看Json数据是否正确,结果如图所示:ASP.NET MVC+EF框架+EasyUI实现权限管理系列(5)-前台JqueryEasyUI前台实现

    ASP.NET MVC+EF框架+EasyUI实现权限管理系列(5)-前台JqueryEasyUI前台实现

4.最后的效果

(1)这篇博客到这里我们已经看到了结尾了吧,很荣幸的告诉大家,你们猜对了,下面我再上几张效果图,展示一下即可,如果各位博友还有什么地方不太懂得话可以给我留言或者加入我的群问我,我将很乐意为你去解决的!

    ASP.NET MVC+EF框架+EasyUI实现权限管理系列(5)-前台JqueryEasyUI前台实现

    ASP.NET MVC+EF框架+EasyUI实现权限管理系列(5)-前台JqueryEasyUI前台实现

最后我再这里提示一个非常重要的注意项,很多人在用easyUI获取数据的时候明明后台传递的Json串没有任何问题,而且前台的代码对应的页写的没错,那麽那里出的问题呢,那就是Json串中的单词写错了,这里传递给后台的json串应该是:{total:22,rows:{}},有图为证

    ASP.NET MVC+EF框架+EasyUI实现权限管理系列(5)-前台JqueryEasyUI前台实现

  

  Kencery返回本系列开篇

  

ASP.NET MVC+EF框架+EasyUI实现权限管理系列(5)-前台JqueryEasyUI前台实现的更多相关文章

  1. ASP&period;NET MVC&plus;EF框架&plus;EasyUI实现权限管理系列

    http://www.cnblogs.com/hanyinglong/archive/2013/03/22/2976478.html ASP.NET MVC+EF框架+EasyUI实现权限管理系列之开 ...

  2. ASP&period;NET MVC&plus;EF框架&plus;EasyUI实现权限管理系列&lpar;21&rpar;-用户角色权限基本的实现说明

    原文:ASP.NET MVC+EF框架+EasyUI实现权限管理系列(21)-用户角色权限基本的实现说明     ASP.NET MVC+EF框架+EasyUI实现权限管系列 (开篇)   (1):框 ...

  3. ASP&period;NET MVC&plus;EF框架&plus;EasyUI实现权限管理系列&lpar;20&rpar;-多条件模糊查询和回收站还原的实现

    原文:ASP.NET MVC+EF框架+EasyUI实现权限管理系列(20)-多条件模糊查询和回收站还原的实现 ASP.NET MVC+EF框架+EasyUI实现权限管系列 (开篇)   (1):框架 ...

  4. ASP&period;NET MVC&plus;EF框架&plus;EasyUI实现权限管理系列&lpar;19&rpar;-用户信息的修改和浏览

    原文:ASP.NET MVC+EF框架+EasyUI实现权限管理系列(19)-用户信息的修改和浏览  ASP.NET MVC+EF框架+EasyUI实现权限管系列 (开篇)   (1):框架搭建    ...

  5. ASP&period;NET MVC&plus;EF框架&plus;EasyUI实现权限管理系列&lpar;18&rpar;-过滤器的使用和批量删除数据&lpar;伪删除和直接删除&rpar;

    原文:ASP.NET MVC+EF框架+EasyUI实现权限管理系列(18)-过滤器的使用和批量删除数据(伪删除和直接删除) ASP.NET MVC+EF框架+EasyUI实现权限管系列 (开篇)   ...

  6. ASP&period;NET MVC&plus;EF框架&plus;EasyUI实现权限管理系列&lpar;17&rpar;-注册用户功能的细节处理&lpar;各种验证&rpar;

    原文:ASP.NET MVC+EF框架+EasyUI实现权限管理系列(17)-注册用户功能的细节处理(各种验证) ASP.NET MVC+EF框架+EasyUI实现权限管系列 (开篇)   (1):框 ...

  7. ASP&period;NET MVC&plus;EF框架&plus;EasyUI实现权限管理系列&lpar;16&rpar;-类库架构扩展以及DLL文件生成修改和用户的简单添加

    原文:ASP.NET MVC+EF框架+EasyUI实现权限管理系列(16)-类库架构扩展以及DLL文件生成修改和用户的简单添加 ASP.NET MVC+EF框架+EasyUI实现权限管系列 (开篇) ...

  8. ASP&period;NET MVC&plus;EF框架&plus;EasyUI实现权限管理系列&lpar;14&rpar;-主框架搭建

    原文:ASP.NET MVC+EF框架+EasyUI实现权限管理系列(14)-主框架搭建    ASP.NET MVC+EF框架+EasyUI实现权限管系列 (开篇)   (1):框架搭建    (2 ...

  9. ASP&period;NET MVC&plus;EF框架&plus;EasyUI实现权限管理系列&lpar;15&rpar;-用户登录详细错误和权限数据库模型设计

    原文:ASP.NET MVC+EF框架+EasyUI实现权限管理系列(15)-用户登录详细错误和权限数据库模型设计     ASP.NET MVC+EF框架+EasyUI实现权限管系列 (开篇)    ...

  10. ASP&period;NET MVC&plus;EF框架&plus;EasyUI实现权限管理系列&lpar;13&rpar;-权限设计

    原文:ASP.NET MVC+EF框架+EasyUI实现权限管理系列(13)-权限设计 ASP.NET MVC+EF框架+EasyUI实现权限管系列 (开篇)   (1):框架搭建    (2):数据 ...

随机推荐

  1. css3样式二

    1.2D转换 通过 translate() 方法,元素从其当前位置移动,根据给定的 left(x 坐标) 和 top(y 坐标) 位置参数 如:div{transform: translate(50p ...

  2. &lpar;扩展欧几里德算法&rpar;zzuoj 10402&colon; C&period;机器人

    10402: C.机器人 Description Dr. Kong 设计的机器人卡尔非常活泼,既能原地蹦,又能跳远.由于受软硬件设计所限,机器人卡尔只能定点跳远.若机器人站在(X,Y)位置,它可以原地 ...

  3. Await Async Task

    class Program { static void Main(string[] args) { Console.WriteLine("=======Start Main!======== ...

  4. cookie与session的区别与联系

    cookie是什么?  cookie是存在于客户端(浏览器). cookie的使用是由浏览器按照一定的原则在后台自动发送给服务器的.浏览器检查所有存储的cookie,如果某个cookie所声明的作用范 ...

  5. hdu 4878 ZCC loves words AC自动机&plus;中国剩余定理&plus;快速幂

    题意就不说了. 分析:折腾好几天自己写的代码还是看了别人代码后发现几乎没什么复杂度的差别,可是就是一直超时,后来干脆照着别人写啊,一直WA,就在准备放弃干脆先写这篇博客的时候,又看了一眼WA的代码,发 ...

  6. Android开源项目(一)

    Android开源项目(一) GitHub在中国的火爆程度无需多~~,越来越多的开源项目迁移到GitHub平台上.更何况,基于不要重复造*的原则~~~~了解当下比较流行的Android与iOS开源项 ...

  7. python学习笔记 tuple

    1. ()去声明.与list类似,但是其元素不能改变. 2. 需要注意的是1中的不能改变是指()中的元素不能改变,如果其元素是一个list,那么list中的元素是可以改变的,不论是大小还是其他的. 3 ...

  8. app ionic1 微信 微博 分享功能的实现

    微信分享 1.登录微信开放平台注册账户 2.创建一个移动应用  (app)  审核过后会有一个appid 之后安装插件的时候会用到 3.在这个应用上面填写 包名 和  签名   就可以了 包名和签名的 ...

  9. Centos7关闭防火墙

    CentOS 7.0默认使用的是firewall作为防火墙 systemctl stop firewalld.service #停止firewall systemctl disable firewal ...

  10. (不断更新)关于显著性检测的调研-Salient Object Detection&colon; A Survey

    <Salient Object Detection: A Survey>作者:Ali Borji.Ming-Ming Cheng.Huaizu Jiang and Jia Li 基本按照文 ...