ASP.NET MVC +EasyUI 权限设计(三)基础模块
2020-12-13 03:07
标签:des style blog class code java 在上一章中呢,我们基本上搭建好了环境,那么本章我们就从基础模块开始写起。由于用户,角色,动作三个当中,都是依赖与动作的,所以本章我们从动作开始做起,先把这个基础模块建立起来,然后才能把用户,角色和动作关联起来形成权限。 首先建立一个新的Controller为ActionController,为其Index方法创建一个视图文件,由于这样的视图文件太多了,而且重复性的代码也比较多,所以我们把共有的部分移植到Views/Shared/_Layout.cshtml中,换句话说就是使用模板。 _Layout.cshtml内容如下: 然后我们建立ActionController的Index方法的View文件,内容如下: 这里使用了EasyUI的DataGrid和Dialog组件,同时我们通过相应的JS函数来实现对Action的CRUD操作。 在initActionGrid函数中我们队Grid进行了一些初始化的操作,从参数可以看出我们的数据加载是通过Action/LoadData这个Action完成的,所以我们在ActionController中添加这样的方法。 这个方法中使用了B_Permit这个类的实例来获得数据。下面我们看一下这个类的内容: 在这个类中,提供了两个方法,一个是用来查询的,一个是用来插入的。当然了这里肯定少不了DAL层的功劳,同时我们来看看DAL中的D_Permit.cs的内容: 在这个类中,我们实现了对Action的查询和添加的SQL实现。说到这里呢,如果说要让项目能够更加的灵活,那么应该在三层架构的基础上添加面向接口的编程,换句话说我们得创建一个IDAL和IBLL两个项目,在这两个项目中要写出对数据库和业务逻辑的抽象操作,这是最好不过了,但是本身由于老魏这个项目比较小,所以就没有采用这中写法,感兴趣的朋友可以再QQ群中来共同的讨论一下。 好了,现在我们来看一下最后运行的结果。 当我们点击“添加动作”的时候,界面如下: 这里需要注意的是,在添加动作的js函数中,使用了content:createIFrame("/Action/AddAction")。也就是用iframe来加载AddAction的界面,当点击保存的时候会执行一个Post请求。关于这连个Action我们来看一下内容: 这里由于老魏没有使用Jquery提供的jquery.unobtrusie-ajax.js,所以这里使用了Content来执行关闭对话框的方法。当然了,在UI端,需要注意的是要给Dialog设置一个onClose的事件,让其关闭的时候能够刷新父页面。 至于删除,老魏这里没有做,如果大家在做的过程中遇到了,希望能够自行的实现。本章到这里就写到这里吧,虽然都是一堆代码,看起来没有什么,但是在写js的时候真是费劲啊。 在这里得抱歉说一下了,老婆的预产期就要到了,所以后续的章节可能跟新的慢了,但是老魏保证的是肯定不会夭折的。 ASP.NET MVC +EasyUI 权限设计(三)基础模块,搜素材,soscw.com ASP.NET MVC +EasyUI 权限设计(三)基础模块 标签:des style blog class code java 原文地址:http://www.cnblogs.com/arhat/p/3724065.html请注明转载地址:http://www.cnblogs.com/arhat
DOCTYPE html>
html>
head>
title>@ViewBag.Titletitle>
link href="/Content/easyui.css" rel="stylesheet" type="text/css" />
link href="/Content/icon.css" rel="stylesheet" type="text/css" />
link href="/Content/base.css" rel="stylesheet" />
script src="/Content/jquery.min.js">script>
script src="/Content/jquery.easyui.min.js">script>
script type="text/javascript">
function createIFrame(src) {
var iframe = "";
return iframe;
}
@RenderSection("script",false)
script>
head>
body>
@RenderBody()
body>
html>
@{
ViewBag.Title = "动作设置";
Layout = "/Views/Shared/_Layout.cshtml";
}
@section script{
$(document).ready(function(){
initActionGrid();
});
function initActionGrid(){
$("#grid").datagrid({
url:‘/Action/LoadActionData‘,
fitColumns:true,
rownumbers:true,
toolbar: [{
iconCls: ‘sys-icon-add‘,
text:"添加动作",
handler:addAction
}],
columns:[[
{field:‘AId‘,title:‘ID‘,width:10,align:‘center‘},
{field:‘AName‘,title:‘动作名‘,width:200,align:‘center‘},
{field:‘AValue‘,title:‘动作值‘,width:200,align:‘center‘},
{field:‘opt‘,title:‘操作‘,width:70,align:‘center‘,formatter:function(v,r,i){
return "a href=‘javascript:delAction("+r.AId+")‘>img src=‘/Content/sys_icons/decline.png‘ />a> a href=‘javascript:editAction("+r.AId+")‘>img src=‘/Content/sys_icons/disk_edit.png‘ />a>";
}}
]]
});
}
function addAction(){
$(‘#dialog‘).dialog({
title: ‘添加动作‘,
iconCls:"sys-icon-add",
width: 400,
height: 300,
closed: false,
cache: false,
modal: true,
onClose:function(){
$("#grid").datagrid("reload");
},
content:createIFrame("/Action/AddAction")
});
}
function delAction(_aid){
$.messager.confirm("提示","确认要删除此动作吗?",function(b){
if(b){
$.get("/Action/DelAction/",{aid:_aid},function(data){
if(data=="y"){
$("#grid").datagrid("reload");
}
},"text");
}
});
}
}
table id="grid" data-options="fit:true">table>
div id="dialog" style="overflow:hidden">div>
[HttpPost]
public ActionResult LoadActionData()
{
var json = new { total = permitBLL.GetAllActionList().Count, rows = permitBLL.GetAllActionList() };
return Json(json,JsonRequestBehavior.DenyGet);
}
#region 查询方法
///
public class D_Permit
{
#region SQL语句
//查询所有的动作(未分页)
private static readonly string sql1 = "select * from ArHat_Action order by AId Desc";
//添加一个动作
private static readonly string sql2 = "insert into ArHat_Action values(@AName,@AValue)";
#endregion
#region 添加方法
///
[HttpGet]
public ActionResult AddAction()
{
return View();
}
///
文章标题:ASP.NET MVC +EasyUI 权限设计(三)基础模块
文章链接:http://soscw.com/essay/26987.html