EasyuiDatagird绑定分页.NetMVC
引入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的更多相关文章
- MVC如何使用开源分页插件shenniu.pager.js
最近比较忙,前期忙公司手机端接口项目,各种开发+调试+发布现在几乎上线无问题了:虽然公司项目忙不过在期间抽空做了两件个人觉得有意义的事情,一者使用aspnetcore开发了个人线上项目(要说线上其实只 ...
- Jquery制作可以绑定的表格
//总页数 当前页 可见页 参数 翻页执行后处理的函数 function PageTable(totalPages, currentPage, tableobj, url, where, column ...
- Bootstrap Paginator 分页 demo.
效果如下: 需要的引用以下内容 bootstrap2 http://cnbootstrap.com/ bootstrap-paginator v0.5 主页 http://bootstrappagin ...
- 自制Javascript分页插件,支持AJAX加载和URL带参跳转两种初始化方式,可用于同一页面的多个分页和不同页面的调用
闲话部分 最近闲着实在无聊,就做了点小东西练练手,由于原来一直在用AspNetPager进行分页,而且也进行了深度的定制与原有系统整合的也不错,不过毕竟是用别人的,想着看自己能试着做出来不能,后台的分 ...
- ajax局部刷新分页
//请求数据加载绑定页面 function DindAjax(pageIndex) {//获取参数 var colors = $("#colorsVal").val(); $.aj ...
- MVC+Bootstrap+Drapper使用PagedList.Mvc支持多查询条件分页
前几天做一个小小小项目,使用了MVC+Bootstrap,以前做分页都是异步加载Mvc部分视图的方式,因为这个是小项目,就随便一点.一般的列表页面,少不了有查询条件,下面分享下Drapper+Page ...
- ASP.NET MVC利用PagedList分页(一)
前几天看见博客园上有人写ASP.NET MVC的分页思想,这让我不禁想起了PagedList.PagedList是NuGet上提供的一个分页的类库,能对任何IEnumerable<T>进行 ...
- access十万级数据分页
最近的一个项目采用winform+access,但后来发现客户那边的数据量比较大,有数十万条数据.用sql语句进行分页,每次翻页加载都需要8秒钟左右,实在难以忍受. 后来百度了一下,发现一篇文章我的A ...
- jqgrid 配置分页大小及下拉项
如何配置分页大小的下拉项?显示效果如下: 通过 rowNum 来设置默认分页大小 通过 rowList 来设置分页下拉. rowList 的值为一个数组,比如:[10,20,30] $(" ...
随机推荐
- Hadoop JAVA HDFS客户端操作
JAVA HDFS客户端操作 通过API操作HDFS org.apache.logging.log4jlog4j-core2.8.2org.apache.hadoophadoop-common${ha ...
- 如何编译运行HanLP自然语言处理包
master分支 对于master分支,编译方法如下: git clone https://github.com/hankcs/HanLP.git mvn install -DskipTests · ...
- SSH框架搭建demo
1.新建Java Web工程 2.添加Struts2.1框架支持 去除冲突包:antlr-2.7.2.jar 一般项目加上这三个包足够,后期可以视项目需求增加支持包: 2.1配置web.xml文件 增 ...
- [转] openwrt关闭调试串口
转自: http://wiki.wrtnode.com/index.php?title=Release_UART/zh-cn 由于mt7620n只有一个UART lite接口,在原生的OpenWrt中 ...
- Arduino在64位WIN7下无法安装驱动的解决办法
1.获取权限 打开C:\Windows\System32\DriverStore\FileRepository,对着FileRepository文件夹,右键 >>属性 >>安全 ...
- Centos 7 systemctl和防火墙firewalld命令
今天自己在Hyper-v下搭建三台Linux服务器集群,用于学习ELKstack(即大数据日志解决技术栈Elasticsearch,Logstash,Kibana的简称),下载的Linux版本为cen ...
- C#实现Google S2算法
S2其实是来自几何数学中的一个数学符号 S²,它表示的是单位球.S2 这个库其实是被设计用来解决球面上各种几何问题的.值得提的一点是,除去 golang 官方 repo 里面的 geo/s2 完成度目 ...
- ArrayBlcokingQueue,LinkedBlockingQueue与Disruptor三种队列对比与分析
一.基本介绍 ArrayBlcokingQueue,LinkedBlockingQueue是jdk中内置的阻塞队列,网上对它们的分析已经很多,主要有以下几点: 1.底层实现机制不同,ArrayBlco ...
- ASP.NET中使用JSON方便实现前台与后台的数据交换
ASP.NET中使用JSON方便实现前台与后台的数据交换 发表于2014/9/13 6:47:08 8652人阅读 分类: ASP.NET Jquery extjs 一.前台向后台请求数据 在页面加 ...
- 编译安装mysql5.7
### 注意版本和此次更新时间 2018-3-11 版本:mysql-5.7.x 环境:linux7.x C/C++编译器安装 yum install gcc g++ -y CMake 是一个跨平台的 ...