增删该查是不论什么一个项目都少不了的功能操作。这篇博文主要简单介绍一下怎样使用EasyUI实现加入和删除功能。

首先。导入EasyUI的js代码:

    <link href="~/EasyuiSource/themes/default/easyui.css" rel="stylesheet" />
<link href="~/EasyuiSource/themes/icon.css" rel="stylesheet" /> <script src="~/EasyuiSource/jquery-1.8.0.min.js"></script>
<script src="~/DiySource/jquery.unobtrusive-ajax.js"></script> <script src="~/EasyuiSource/jquery.easyui.min.js"></script>
<script src="~/EasyuiSource/easyui-lang-zh_CN.js"></script>
<script src="~/DiySource/datapattern.js"></script></strong></span>

接下来,由于加入须要弹出对话框,所以以下是对加入对话框的布局设置,这里使用了Ajax窗口,參数Add为该form提交到的Action方法。

        

    <div id="addDiv">
@using (Ajax.BeginForm("Add", new AjaxOptions() { OnSuccess = "afterAdd" }))
{
<table>
<tr>
<td>编号:</td>
<td>
@Html.TextBox("AdministratorID")
</td>
</tr>
<tr>
<td>password:</td>
<td>@Html.TextBox("AdminPassword")</td>
</tr>
<tr>
<td>真实姓名:</td>
<td>
@Html.TextBox("AdminName")
</td>
</tr>
</table>
} </div></strong></span>



然后就是对加入和删除动作的js方法操作:

        

       //显示弹出加入的对话框
function showAddFrm() {
$("#addDiv").css("display", "block");
$("#addDiv").dialog({
width: 400,
height: 300,
modal: true,
title: "加入用户信息",
collapsible: true,
minimizable: true,
maximizable: true,
resizable: true,
buttons: [{
id: 'btnAdd',
text: '加入',
iconCls: 'icon-add',
handler: function () {
//让表单提交
$("#addDiv form").submit();
}
}, {
id: 'btnCancelAdd',
text: '取消',
iconCls: 'icon-cancel',
handler: function () {
$("#addDiv").dialog("close");
}
}]
});
} //加入成功之后运行的代码
function afterAdd(data) {
if (data == "ok") {
//关闭对话框,刷新表
$("#addDiv").dialog("close");
//initTable();
$('#tt').datagrid("reload");
} else {
$.messager.alert("提示消息", data);
}
} //删除用户数据
function doDelete() {
//把你选中的 数据查询出来。
var selectRows = $('#tt').datagrid("getSelections");
if (selectRows.length < 1) {
$.messager.alert("提示消息", "请选中要删的数据!");
return;
} //真删除数据
//提醒用户是否是真的删除数据
$.messager.confirm("确认消息", "您确定要删除信息吗?", function (r) {
if (r) {
//真删除了 1,3,4
var strIds = "";
for (var i = 0; i < selectRows.length; i++) {
strIds += selectRows[i].ID + ",";
}
strIds = strIds.substr(0, strIds.length - 1);
//alert(strIds);
$.post("/Administrator/DelBy", { ids: strIds }, function (data) {
if (data == "ok") {
//刷新表格。去掉选中状态的 那些行。 $('#tt').datagrid("reload");
$('#tt').datagrid("clearSelections");
} else {
$.messager.alert("删除失败~~", data);
}
});
}
}); }</strong></span>



    以下。是对表格的初始化相关的js操作。我们主要关心对加入和删除button的绑定。

       

<script type="text/javascript">

        $(function () {
initTable(); $("#addDiv").css("display", "none"); //隐藏加入对话框
bindSearcheClick(); }); //初始化表格
function initTable() {
//把搜素框里的内容提交到后台对数据进行过滤。
$('#tt').datagrid({
url: '/Administrator/QueryBy',
//title: '演示表格使用',
width: "100%",
//height: 1400,
fitColumns: true,
idField: 'ID',
loadMsg: '正在载入用户的信息...',
pagination: true,
singleSelect: false,
pageSize: 10,
pageNumber: 1,
pageList: [10, 20, 30],
queryParams: {
searchName: $("#searchName").val()
},
columns: [[
{ field: 'ck', checkbox: true, align: 'left', width: 50 },
{ field: 'ID', width: 50, hidden: true },
{ field: 'AdministratorID', title: '编号', width: 50 },
{ field: 'AdminPassword', title: 'password', width: 50 },
{ field: 'AdminName', title: '真实姓名', width: 50 },
]],
toolbar: [{
id: 'btnDownShelf',
text: '加入',
iconCls: 'icon-add',
handler: function () {//给加入button绑定事件
showAddFrm();
}
}, {
id: 'btnDelete',
text: '删除',
iconCls: 'icon-remove',
handler: function () {//改删除button绑定事件 doDelete();
}
}],
onHeaderContextMenu: function (e, field) { },
onLoadSuccess: function (data) {
$(".delUser").unbind("click");
$(".delUser").bind("click", function () {
alert($(this).attr("uid"));
return false;
}); $(".editUser").unbind("click");
$(".editUser").bind("click", function () {
//alert($(this).attr("uid"));
doEdit($(this).attr("uid"));
return false;
});
}
});
} </script></strong></span>

       

   
经过上面的绑定设置后。我们在点击加入button后。就会弹出加入对话框。将我们的表单提交到Controller中相应的Action中,由于加入对话框是post提交,所以要在相应的Action上加上[HttpPost]标签。

         

        //3.0加入
[HttpPost]
public ActionResult Add(YzAdministratorEntity admin)
{ try
{
admin.ID = Guid.NewGuid();
admin.isUsed = true;
admin.AdminLevel = "管理员";
adminBLL.Add(admin); return Content("ok");
}
catch (Exception ex)
{
//错误日志处理
return Content(ex.Message);
}
} //4.0批量删除
public ActionResult DelBy(string ids)
{
if (string.IsNullOrEmpty(ids))
{
return Content("请选中要删除的数据!");
} var adminIds = ids.Split(',');
Guid[] ass = new Guid[adminIds.Length];
for (int i = 0; i < adminIds.Length; i++)
{
ass[i] = new Guid(adminIds[i]);
} adminBLL.DelBy(a => ass.Contains(a.ID));
return Content("ok");
}</strong></span>



    这样,整个流程下来就实现了我们的加入和删除功能。

总结:

在使用EasyUI的过程中,有时候感觉代码和方法之间的调用关系有点凌乱,代码是对现实世界的逻辑抽象。它是准确的、明晰的、逻辑性强的,刚開始敲的时候总有种把控不了的感觉,总结下来主要有双方面原因。一是基础知识掌握的不够坚固。代码经验少;另一个就是没有从全局上考虑方法之间的调用关系。

通过编程,真的能使人的思维方式得到锻炼,仅仅有当思考的方式和代码的逻辑艺术融合到一起,才可以真实写出好的代码来。

使用EasyUI实现加入和删除功能的更多相关文章

  1. 实例:SSH结合Easyui实现Datagrid的批量删除功能

    在我先前的基础上面添加批量删除功能.实现的效果如下 删除成功 通常情况下删除不应该真正删除,而是应该有一个标志flag,但flag=true表示状态可见,但flag=false表示状态不可见,为删除状 ...

  2. [vs2008]Visual Studio 2008 SP1添加或删除功能提示查找SQLSysClrTypes.msi文件

    前言 今天接到领导布置的一个任务,是之前同事负责的项目.离职了,现在客户有些地方需要修改,由于我之前参与过,就落在我的头上了. 然后我就把代码弄了过来,打开发现其中需要用到水晶报表.(我觉得不好用,不 ...

  3. react.js CMS 删除功能的实现

    页面效果图: 数据操作分析: 在查询表组件的  TableData.js 中操作如下内容: 给每一行绑定一个checkbox,且在点击这个 checkbox 时,触发 action 中的一个方法(fo ...

  4. php大力力 [042节] 今天做了一个删除功能

    php大力力 [042节] 今天做了一个删除功能 if(isset($_GET['action'])){ if($_GET['action']=="del"){ $sql = &q ...

  5. Java递归实现操作系统文件的复制、粘贴和删除功能

    通过Java IO递归实现操作系统对文件的复制.粘贴和删除功能,剪切=复制+粘贴+删除 代码示例: import java.io.BufferedInputStream; import java.io ...

  6. java 12-3 StringBuffer的添加和删除功能

    1. StringBuffer的添加功能: public StringBuffer append(String str):可以把任意类型数据添加到字符串缓冲区里面,并返回字符串缓冲区本身 public ...

  7. tableView左滑删除功能

    实现三个代理方法即可 -(NSString *)tableView:(UITableView *)tableView titleForDeleteConfirmationButtonForRowAtI ...

  8. ajax“显示弹窗详情”和“删除”功能练习

    1.查看详细信息,以弹窗的形式显示,使用ajax 2.批量删除 “查询”功能可以参考前面的文章,这里只讲解ajax“显示弹窗详情”和“删除”功能 第一:在body中的代码 <title>a ...

  9. ajax中网页传输(一)TEXT——带有删除功能的数据库表格显示练习

    网页之间传输的三种方式:TEXT.JSON.XML. 本章将讲解带有TEXT形势的ajax网页传输 第一:body部分代码 <title>ajax中TEXT讲解并且带有删除功能的表格< ...

随机推荐

  1. Unable to start MySQL service. Another MySQL daemon is already running with the same UNIX socket

    Unable to start MySQL service. Another MySQL daemon is already running with the same UNIX socket 特征 ...

  2. Python入门(转)

    Python 简洁的语法和对动态输入的支持,再加上解释性语言的本质, 使得它在大多数平台上的许多领域都是一个理想的脚本语言,特别适用于快速的应用程序开发 特点:简单.易学.免费.开源.高层语言.可移植 ...

  3. C#访问MySQL数据库(winform+EF)

    原文:C#访问MySQL数据库(winform+EF) 以前都是C#连接SQLServer,现在MySQL也比较火了,而且是开源跨平台的,这里连接使用一下,主要是体会一下整个流程,这里使用的是winf ...

  4. TaintDroid:智能手机监控实时隐私信息流跟踪系统(一)

    1.1     摘要 现今,智能手机操作系统不能有效的提供给用户足够的控制权并且很清楚的了解到第三方的应用程序是如何使用其的隐私数据.我们使用了TaintDroid来阐明这个缺点,其是一个高效的,全系 ...

  5. Cocos-2dx-Lua中使用Luaj的完整示例(转)

    如何使用Luaj进行java与Lua之间的交互调用 一.主要分为两个大步骤,Lua工程的修改,android工程的修改 二.工程环境 开发工具:Cocos-Code-IDE Lua版本 : Lua 5 ...

  6. WPF中的三维空间(2)

    原文:WPF中的三维空间(2) 2.10.3 三维对象操作 1.在二维平面空间移动.缩放.旋转Viewport3D控件对象         图2-196 选中Viewport3D控件对象      图 ...

  7. 使用ThinkPHP框架高速发展网站(多图)

    使用ThinkPHP框架高速搭建站点 这一周一直忙于做实验室的站点,基本功能算是完毕了.比較有收获的是大概了解了ThinkPHP框架.写一些东西留作纪念吧.假设对于相同是Web方面新手的你有一丝丝帮助 ...

  8. Java引用类型变量

    Java引用类型变量 1.编译时类型:由声明该变量时使用的类型决定 2.执行时类型:由实际赋给该变量的对象决定    类型不一致的假设编译时类型和执行,可能会出现多态性 版权声明:本文博主原创文章.博 ...

  9. effective c++ 条款4 make sure that objects are initialized before they are used

    1 c++ 类的数据成员的初始化发生在构造函数前 class InitialData { public: int data1; int data2; InitialData(int a, int b) ...

  10. hdu 2899 hdu 3400 三分/几何

    hdu2899 : 水提,直接三分,事实上求导后二分也能够. #include<iostream> #include<cstdio> using namespace std; ...