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] $(" ...
随机推荐
- 利用Mega2560实现USB转串口
1. 介绍 2560的串口一共有4个,分别对应数字接口0-1,18-19,16-17,14-15所有串口都可以跟pc通信,但只有0-1是跟板子上的usb2ttl连接,电脑上显示的串口编号就是0-1对应 ...
- innobackupex
time innobackupex --defaults-file=/data/mysql/3306/my.cnf --user=root --password=123456 \--rsync --p ...
- android利用provider查询同一个数据库中没有对外暴露出来的表
[原创]转载请加本篇博客地址http://www.cnblogs.com/scarecrow-blog/p/6266042.html 个人感觉这是android provider 的一个漏洞, 废话少 ...
- adb命令模拟按键输入keycode
adb命令模拟按键输入keycode 2017年05月18日 14:57:32 阅读数:1883 例子: //这条命令相当于按了设备的Backkey键 adb shell input keyevent ...
- 【git之】fetch和 pull的区别
Git中从远程的分支获取最新的版本到本地有这样2个命令:1. git fetch:相当于是从远程获取最新版本到本地,不会自动merge Git fetch origin master git log ...
- Hard commits, soft commits and transaction logs
“Hard commits are about durability, soft commits are about visibility“ Transaction Logs 首先介绍下solrcl ...
- java设计模式-Observer(2)
一.模拟AWT事件处理 回顾一下JDK里面按下一个Button,有件事发生,这个东西怎么写: package com.cy.dp.observer.awt; import java.awt.Butto ...
- [转][Oracle][null]
trim(nvl(ipaddress,'')) != '' 这段SQL 并没有像 MSSQL IsNull 一样返回不含空白或null 的内容 经尝试发现 trim('') 为 null a fr ...
- 安装部署Jenkins服务
1.导入安装包 2.安装安装包 (1).安装JDK和maven 创建jdk存储目录 # mkdir /usr/jdk64/ 解压jdk到存储目录 # tar -zxvf jdk-8u191-linux ...
- mikrotik ros CVE-2019–3924 DUDE AGENT VULNERABILITY
原文: https://blog.mikrotik.com/security/cve-20193924-dude-agent-vulnerability.html The issue is fixed ...