引入EasyUi所有需要的脚本,样式

<link href="/easyui/themes/default/easyui.css" rel="stylesheet" />
<link href="/easyui/themes/icon.css" rel="stylesheet" />
<script src="/easyui/jquery.min.js"></script>
<script src="/easyui/jquery.easyui.min.js"></script>
<script src="/easyui/locale/easyui-lang-zh_CN.js"></script>

JS脚本部分

 <script type="text/javascript">
$(function () {
obj = {
editRow: undefined,
add: function () { $('#save,#redo').show();
if (this.editRow == undefined)
{
/*appenRow 在末尾添加一行*/
$('#box').datagrid('insertRow', {
index: 0,
row: {
cityname: '',
intro: '',
code: '',
}
});
//将第一行设置为可编辑状态
$("#box").datagrid('beginEdit', 0),
this.editRow =0 ; }
}, edit:function()
{
var rows = $('#box').datagrid('getSelections');
if (rows.length == 1) {
if (this.editRow != undefined) { $("#box").datagrid('endEdit', this.editRow) }
if (this.editRow == undefined) {
var index=$("#box").datagrid('getRowIndex',rows[0])
$('#save,#redo').show();
$("#box").datagrid('beginEdit', index)
this.editRow = index
//关闭当前行编辑状态
$("#box").datagrid('unselectRow',index)
}
}
else {
$.messager.alert('警告', '修改只能选中一行','warning');
} },
/*删除*/
remove:function()
{
var rows = $('#box').datagrid('getSelections');
if (rows.length > 0) {
$.messager.confirm('确定操作', '您确定要删除所选中的记录吗', function (flag) {
if (flag)
{
var ids = [];
for (var i = 0; i < rows.length; i++)
{
ids.push(rows[i].cid);
}
$.ajax(
{
url: "/cityManager/cityRemove",
data:{"ids":ids.join(',')},
type: "post",
success: function (data)
{
if (data.Message == "Success")
{
$("#box").datagrid("loaded");
$("#box").datagrid("load");
$("#box").datagrid("unselectAll");
$.messager.show({
title: '提示',
msg:data.flag+'个信息被删除成功!',
})
}
},
error: function (data)
{
$.messager.alert(data);
}
});
obj.editRow = undefined;
}
}
)
}
else {
$.messager.alert('警告','请选中一行或多行','info') }
},
save: function ()
{
//这两句不应该放这里,应该是保存之后放这里
//$('#save,#redo').hide();
//this.editRow = false;
//将第一行设置为结束编辑
//保存当前行的数据结束编辑
$("#box").datagrid('endEdit', this.editRow) },
redo: function ()
{
$('#save,#redo').hide();
this.editRow = undefined;
/*回滚所有从创建或上一次调用acceptChanges函数后更该的数据*/
$("#box").datagrid('rejectChanges')
}
};
/*加载表格*/
$("#box").datagrid({
url: '/cityManager/cityQuery',
singleSelect: false,//多选
pagination: true,//分页
pageSize: 10,//页面大小
pageList: [5, 10, 15, 20, 30, 50, 80, 200],
rownumbers:true,//编号
title: "城市信息",
//右击表格事件
onRowContextMenu:function(e,rowIndex,rowData)
{
/*去掉默认的右击的面板*/
e.preventDefault();
/*显示Menu锁定位置*/
$('#menu').menu('show', {
left: e.pageX,
top: e.pageY, })
}, //双击选中行执行的事件(索引行,数据)
onDblClickRow: function (rowIndex, rowData) {
//将上一次编辑行关闭并且保存
if (obj.editRow!=undefined) {
$("#box").datagrid('endEdit', obj.editRow); }
if (obj.editRow == undefined) {
$('#save,#redo').show();
$("#box").datagrid('beginEdit', rowIndex);
obj.editRow = rowIndex;
}
}, //编辑结束后事件 *添加和跟新的操作在这了*/
onAfterEdit:function(rowIndex,rowDate,changes)
{
var url = '';
var info = '';
/*从上一次的提交获取所有行,类型参数有,inserted,deleted,updated
返回的一个数组 */
var inserted = $("#box").datagrid('getChanges', 'inserted');
var updated = $("#box").datagrid('getChanges', 'updated');
/*添加*/
if (inserted.length> 0)
{
url = '/cityManager/addCity';
info = '添加';
}
/*更新*/
if (updated.length > 0)
{
url = '/cityManager/EditCity';
var info = '更新';
}
$.ajax(
{
url: url,
data: rowDate,
type: "post",
success: function (data) {
if (data.Message == "Success") {
$("#box").datagrid("loaded");//重新加载
$("#box").datagrid("load");//加载
$("#box").datagrid("unselectAll");//去掉所有复选框
$.messager.show({
title: '提示',
msg: data.flag + '个信息被"'+info+'"成功!',
})
}
},
error: function (data) {
$.messager.alert(data);
}
});
$('#save,#redo').hide();
obj.editRow = undefined;//将对象重新赋值为undefined
},
columns: [[
{
field: "cid",
title: "编号",
align: 'center',
width: 300,
checkbox:true
},
{
field: "cityname",
title: "城市名称",
// hidden: true 隐藏列
align: 'center',
width: 300,
editor: {
type: 'validatebox',
options: {
required:true,
}
}
},
{
field: "intro",
title: "介绍",
align: 'center',
width: 100,
editor: { //设置为编辑行
type: 'validatebox',
options: {
required: true,
}
}
},
{
field: "code",
title: "代码",
align: 'center',
width: 100,
editor: { //
type: 'validatebox',
options: {
required: true,
}
}
},
{
field: "createtime",
title: "创建时间",
align: 'center',
width: 100,
editor: { //
type: 'datetimebox',
options: {
required: true,
}
}
},
]],
toolbar: "#tb",
})
})
</script>

HTML部分

 <table id="box"> </table>
<div id="tb" style="padding:5px;height:auto">
<div style="margin-bottom:5px">
<a href="#" class="easyui-linkbutton" onclick="obj.add();" iconcls="icon-add" plain="true">添加</a>
<a href="#" class="easyui-linkbutton" onclick="obj.edit();" iconcls="icon-edit" plain="true">修改</a>
<a href="#" class="easyui-linkbutton" onclick="obj.remove();" iconcls="icon-remove" plain="true">删除</a>
<a href="#" class="easyui-linkbutton" iconcls="icon-save" style="display:none" id="save" onclick="obj.save()" plain="true">保存</a>
<a href="#" class="easyui-linkbutton" iconcls="icon-redo" style="display:none" id="redo" onclick="obj.redo()" plain="true">取消编辑</a>
</div>
</div>
<div id="menu" class="easyui-menu" style="width:100px;display:none">
<div onclick="obj.add();" iconcls="icon-add" plain="true">添加</div>
<div onclick="obj.edit();" iconcls="icon-edit" plain="true">修改</div>
<div onclick="obj.remove();" iconcls="icon-remove" plain="true">删除</div>
</div>

后台.NetMVC代码

       /*查询*/
public ActionResult cityQuery()
{
//获取分页的页数
int pageNum = Convert.ToInt32(Request.Params["page"]);
//获取分页大小
int pageSize = Convert.ToInt32(Request.Params["rows"]);
var CityList = (from u in db.tb_city
orderby u.cid descending
where(u.isdelete==0)
select u).Skip(pageSize * (pageNum - 1)).Take(pageSize);
// using Newtonsoft.Json 序列化转成Json字符串
var jsons = JsonConvert.SerializeObject(CityList); string json = "{\"total\":" + db.tb_city.ToList().Count + ",\"rows\": " + jsons + "}";
return Content(json);
}
/*删除*/
public ActionResult cityRemove()
{ Hashtable ht = new Hashtable();
string[] ids = ConvertHelper.GetString(Request["ids"]).Split(',');
int flag = 0;
foreach (var item in ids)
{
tb_city model = db.tb_city.Find(ConvertHelper.GetInteger(item));
model.isdelete =1;
TryUpdateModel(model);
db.SaveChanges();
flag++;
}
if (flag > 0)
{
ht["Message"] = "Success";
ht["flag"] = flag;
ht["Resulet"] = true;
}
else
{
ht["Message"] = "Error";
ht["Resulet"] = false;
} return Json(ht); }
/*添加*/
public ActionResult addCity()
{
Hashtable ht = new Hashtable();
string cityname = ConvertHelper.GetString(Request["cityname"]);
string code = ConvertHelper.GetString(Request["code"]);
string intro = ConvertHelper.GetString(Request["cityname"]);
tb_city model = new tb_city();
model.cityname = cityname;
model.code = code;
model.intro = intro;
model.isdelete = 0;
db.tb_city.Add(model);
int flag= db.SaveChanges(); if (flag > 0)
{
ht["Message"] = "Success";
ht["flag"] = flag;
ht["Resulet"] = true;
}
else
{
ht["Message"] = "Error";
ht["Resulet"] = false;
}
return Json(ht); } /*修改*/
public ActionResult EditCity()
{
Hashtable ht = new Hashtable();
string id = ConvertHelper.GetString(Request["cid"]);
string cityname = ConvertHelper.GetString(Request["cityname"]);
string code = ConvertHelper.GetString(Request["code"]);
string intro = ConvertHelper.GetString(Request["cityname"]);
string user = ConvertHelper.GetString(Request["cityname"]);
tb_city model = db.tb_city.Find(ConvertHelper.GetInteger(id));
model.cityname = cityname;
model.code = code;
model.intro = intro;
model.isdelete = 0;
TryUpdateModel(model);
int flag= db.SaveChanges(); if (flag > 0)
{
ht["Message"] = "Success";
ht["flag"] = flag;
ht["Resulet"] = true;
}
else
{
ht["Message"] = "Error";
ht["Resulet"] = false;
}
return Json(ht); }

运行后的效果

总结:主要是用到了EasyUIDatagrid中 ,编辑结束后事件onAfterEdit,添加和更新在这里编写(从上一次的提交获取所有行,类型参数有,inserted,deleted,updated 返回的一个数组编辑后的数据)

var inserted = $("#box").datagrid('getChanges', 'inserted');

var updated = $("#box").datagrid('getChanges', 'updated');

EasyuiDatagird绑定分页.NetMVC的更多相关文章

  1. MVC如何使用开源分页插件shenniu.pager.js

    最近比较忙,前期忙公司手机端接口项目,各种开发+调试+发布现在几乎上线无问题了:虽然公司项目忙不过在期间抽空做了两件个人觉得有意义的事情,一者使用aspnetcore开发了个人线上项目(要说线上其实只 ...

  2. Jquery制作可以绑定的表格

    //总页数 当前页 可见页 参数 翻页执行后处理的函数 function PageTable(totalPages, currentPage, tableobj, url, where, column ...

  3. Bootstrap Paginator 分页 demo.

    效果如下: 需要的引用以下内容 bootstrap2 http://cnbootstrap.com/ bootstrap-paginator v0.5 主页 http://bootstrappagin ...

  4. 自制Javascript分页插件,支持AJAX加载和URL带参跳转两种初始化方式,可用于同一页面的多个分页和不同页面的调用

    闲话部分 最近闲着实在无聊,就做了点小东西练练手,由于原来一直在用AspNetPager进行分页,而且也进行了深度的定制与原有系统整合的也不错,不过毕竟是用别人的,想着看自己能试着做出来不能,后台的分 ...

  5. ajax局部刷新分页

    //请求数据加载绑定页面 function DindAjax(pageIndex) {//获取参数 var colors = $("#colorsVal").val(); $.aj ...

  6. MVC+Bootstrap+Drapper使用PagedList.Mvc支持多查询条件分页

    前几天做一个小小小项目,使用了MVC+Bootstrap,以前做分页都是异步加载Mvc部分视图的方式,因为这个是小项目,就随便一点.一般的列表页面,少不了有查询条件,下面分享下Drapper+Page ...

  7. ASP.NET MVC利用PagedList分页(一)

    前几天看见博客园上有人写ASP.NET MVC的分页思想,这让我不禁想起了PagedList.PagedList是NuGet上提供的一个分页的类库,能对任何IEnumerable<T>进行 ...

  8. access十万级数据分页

    最近的一个项目采用winform+access,但后来发现客户那边的数据量比较大,有数十万条数据.用sql语句进行分页,每次翻页加载都需要8秒钟左右,实在难以忍受. 后来百度了一下,发现一篇文章我的A ...

  9. jqgrid 配置分页大小及下拉项

    如何配置分页大小的下拉项?显示效果如下: 通过 rowNum 来设置默认分页大小 通过 rowList 来设置分页下拉.   rowList 的值为一个数组,比如:[10,20,30] $(" ...

随机推荐

  1. Go 并发控制--WaitGroup的使用

    开发过程中,经常task之间的同步问题.例如,多个子task并发完成一部分任务,主task等待他们最后结束. 在Go语言,实现同步的一种方式就是WaitGroup. Example package m ...

  2. Vivado约束文件(XDC)的探究(1)

    Vivado约束文件(XDC)的探究(1) 工程建好之后会出现xdc文件: 注意:active 和 target 生成的约束文件如下:

  3. MySQL Master High Available 源码篇

    https://m.aliyun.com/yunqi/users/1287368569594542/articles https://yq.aliyun.com/articles/59233 MySQ ...

  4. zabbix moniter

    zabbix moniter http://blog.csdn.net/xiegh2014/article/category/6945291/2

  5. PHP用ActiveMq 实现消息列队

    1.各种安装 2.简单配置: jetty.xml localhost:8161 配置: activemq添加stomp的61613接口 conf/activemq.xml <transportC ...

  6. 让WebBrowser在非兼容模式下运行

    32 bit: HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Internet Explorer\MAIN\FeatureControl\FEATURE_BROWSER_ ...

  7. 宝塔linux面板运行jsp文件的配置工作

    第一步宝塔安装和软件安装我们先安装宝塔面板(这个不需要我说咋弄吧) 安装完成后登录到宝塔面板然后安装软件我个人喜欢nginx最新版,mysql由于服务器配置很菜所以没发装56,php什么的我用不到就没 ...

  8. ALGO-115_蓝桥杯_算法训练_和为T(枚举)

    问题描述 从一个大小为n的整数集中选取一些元素,使得它们的和等于给定的值T.每个元素限选一次,不能一个都不选. 输入格式 第一行一个正整数n,表示整数集内元素的个数. 第二行n个整数,用空格隔开. 第 ...

  9. 安卓模拟器错误 PANIC: Could not open

    最近在配置Android环境的时候着实让我迷惘了许久,最主要的一个问题就是在创建AVD的时候,出现如下问题: PANIC: Could not open ***

  10. PHP7.1扩展开发入门

    第1步: 首先从官网下载了PHP源码http://am1.php.net/distributions/php-7.1.3.tar.bz2 第2步: 解压后可以看到根目录下面的ext文件夹里有ext_s ...