.net + EF EasyUI 增删改查
博主在这里先讲下什么是EasyUI?
- EasyUI是一组基于jQuery的UI插件集合体
- EasyUI通过javascript代码快速实现功能
- EasyUI可以帮助开发者快速打造出功能丰富并且美观的UI界面
数据库
**博主这里选择的是SQL Server 2016 功能与SQL Server的版本号无关(这里我做的是用户的单表不存在权限菜单逻辑):
Name | type |
---|---|
Uid | varchar(36) |
Uname | varchar(50) |
Upwd | varchar(20) |
Ugender | int |
UAddress | varchar(50) |
Ustute | varchar(50) |
IsDelete | bit |
在用EasyUI 之前需要下载jQuery EasyUI包
这里博主提供下,详[http://www.jeasyui.com/download/index.php][1].
下载好包后,打开vs 新建解决方案,新建项目,把下载的包粘贴到项目中。
前台代码块
前台页面需要引用包里的js 这里详[http://www.jeasyui.net/demo/331.html][1].
<body>
<div style="margin:20px 0;"></div>
<table id="dg" title="用户列表" class="easyui-datagrid" style="width:550px;height:250px"
url="@Url.Action("GetData","Home")"
toolbar="#toolbar"
rownumbers="true" fitColumns="true" singleSelect="true" pagination="true">
<thead>
<tr>
<th field="Uname" width="100">用户姓名</th>
<th field="Upwd" width="100">密码</th>
<th field="Ugender" width="100">性别</th>
<th field="UAddress" width="250">住址</th>
<th field="Ustute" width="60">状态</th>
</tr>
</thead>
</table>
<div id="toolbar">
<a href="#" class="easyui-linkbutton" iconCls="icon-add" plain="true" onclick="newUser()">添加用户</a>
<a href="#" class="easyui-linkbutton" iconCls="icon-edit" plain="true" onclick="editUser()">编辑用户</a>
<a href="#" class="easyui-linkbutton" iconCls="icon-remove" plain="true" onclick="destroyUser()">删除用户</a>
<input id="productid" style="line-height:26px;border:1px solid #ccc" width="100">
<a href="#" class="easyui-linkbutton" plain="true" onclick="doSearch()">查询</a>
</div>
<div id="dlg" class="easyui-dialog" style="width:400px;height:280px;padding:10px 20px"
closed="true" buttons="#dlg-buttons">
<div class="ftitle">用户信息</div>
<form id="fm" method="post">
<table cellpadding="5">
<tr>
<td>用户名:</td>
<td><input class="easyui-textbox" type="text" name="Uname" /></td>
<td><input type="hidden" name="Uid" /></td>
</tr>
<tr>
<td>密码:</td>
<td><input class="easyui-textbox" type="text" name="Upwd" /></td>
</tr>
<tr>
<td>性别:</td>
<td>
<input type="radio" name="Ugender" value="1"><span>男</span>
<input type="radio" name="Ugender" value="2"><span>女</span>
</td>
</tr>
<tr>
<td>地址:</td>
<td><input class="easyui-textbox" name="UAddress" data-options="multiline:true" style="height:60px" /></td>
</tr>
<tr>
<td>状态:</td>
<td>
<select class="easyui-combobox" name="Ustute">
<option value="正常" selected>正常</option>
<option value="失效">失效</option>
</select>
</td>
</tr>
</table>
</form>
</div>
<div id="dlg-buttons">
<a href="#" class="easyui-linkbutton" iconCls="icon-ok" onclick="saveUser()">保存</a>
<a href="#" class="easyui-linkbutton" iconCls="icon-cancel" onclick="javascript:$('#dlg').dialog('close')">取消</a>
</div>
</body>
Javascript代码块
<script type="text/javascript">
function newUser() {
$('#dlg').dialog('open').dialog('setTitle', '新增用户信息');
$('#fm').form('clear');
url = '@Url.Action("SaveUser","Home")';
}
function doSearch() {
$('#dg').datagrid('load', {
username: $('#productid').val(),
});
}
function editUser(){
var row = $('#dg').datagrid('getSelected');
if (row) {
$('#dlg').dialog('open').dialog('setTitle', '编辑用户');
$('#fm').form('load', row);
url = '@Url.Action("SaveUser","Home")';
}
}
function saveUser() {
$('#fm').form('submit', {
url: url,
onSubmit: function () {
return $(this).form('validate');
},
success: function (result) {
var result = eval('(' + result + ')');
if (result.msg=="保存成功。") {
alert(result.msg);
$('#dlg').dialog('close'); // 关闭弹框
$('#dg').datagrid('reload'); //重新加载数据
} else {
$.messager.show({
title: 'Error',
msg: result.msg
});
}
}
});
}
function destroyUser() {
var row = $('#dg').datagrid('getSelected');
if (row) {
$.messager.confirm('Confirm', '确定要删除用户吗?', function (r) {
if (r) {
$.post("@Url.Action("DeleteUser")", { userIds: row.Uid }, function (result) {
if (result.msg == "删除成功。") {
alert(result.msg)
$('#dg').datagrid('reload'); // 重新加载数据
} else {
$.messager.show({ // 展示错误信息
title: 'Error',
msg: result.errorMsg
});
}
}, 'json');
}
});
}
}
</script>
Controllers 层代码块
博主这里的context 是EF拉取的实例。
//这里是获取列表的方法 username 是前台页面查询传递的参数
public JsonResult GetData(string username)
{
if (!string.IsNullOrEmpty(username))
{
var dd = context.User_Info.Where(x => username.Contains(x.Uname) && !x.IsDelete).ToList();
return Json(dd, JsonRequestBehavior.AllowGet);
}
else
{
var data = context.User_Info.Where(x => !x.IsDelete).ToList();
return Json(data, JsonRequestBehavior.AllowGet);
}
}
添加方法:
//这里的model是实体
public ActionResult SaveUser(Models.Data.User_Info model)
{
try
{
var user = context.User_Info.FirstOrDefault(x => x.Uid == model.Uid);
var exit = context.User_Info.Exists(x => x.Uname == model.Uname);
if (user != null)
{
//编辑
user.Uname = model.Uname;
user.Upwd = model.Upwd;
user.UAddress = model.UAddress;
user.Ugender = model.Ugender;
user.Ustute = model.Ustute;
}
else
{
//添加
if (exit)
{
return new JsonResult() { Data = new { msg = "用户已存在,请重新编辑。" } };
}
else
{
user = model;
user.Uid = Guid.NewGuid().ToString();
context.User_Info.Add(user);
}
}
context.SaveChanges();
return new JsonResult() { Data = new { msg = "保存成功。" } };
}
catch (Exception ex)
{
return new JsonResult() { Data = new { msg = ex.Message } };
}
}
删除方法:
//userIds 为前台传递的主键id
public ActionResult DeleteUser(string userIds)
{
try
{
var users = context.User_Info.Where(x => userIds.Contains(x.Uid));
if (users.Count() > 0)
{
users.For(x =>
{
context.User_Info.Remove(x);
});
}
context.SaveChanges();
return new JsonResult() { Data = new { msg = "删除成功。" } };
}
catch (Exception ex)
{
return new JsonResult() { Data = new { msg = ex.Message } };
}
}