ASP.NET MVC easyUI-datagrid 分页
本文写的是最简单的 按照API文档来写的分页。就是插件自带的分页效果。
一、html代码:field就是代表你后台数据的对应的列名。
<table id="dg" class="easyui-datagrid" style="width: 100%; height: 400px;" data-options="nowrap:false">
<thead>
<tr>
<th data-options="field:'DeviceId',checkbox:true"></th>
<th data-options="field:'DeviceName', width:120,align:'center'" >名称</th>
<th data-options="field:'DeviceUnitName', width:80,align:'center'">单位</th>
<th data-options="field:'MakePlace', width:120,align:'center'">产地</th>
<th data-options="field:'BuyTime', width:120,align:'center'">购置日期</th> </tr>
</thead>
</table>
二丶JS代码:在js写easyUI-datagrid读取数据时候,要分页就加上 pagination: true,pageSize:10,pageList[10,20,30],表示grid要分页,每页10条,但可选10,20或者30条每页。
$(".easyui-datagrid").datagrid({
rownumbers: true,
singleSelect: false,
fitColumns: false,
idField: 'DeviceId',
method: 'post',
url: '/Admin/Report/DeviceDetialListSearch',
remoteSort: false,
multiSort: false,
pagination: true,
pageSize: ,
pageList: [,,],
queryParams: {
'DeviceIdList':"",
'DeviceName':$("#DeviceName").combobox('getValue'),
},
onLoadSuccess: function () {
//$("#dg").datagrid('clearChecked');//清除复选框
//$("#dg").datagrid('load');
}
});
三丶Controller后台读取数据 DeviceDetialListSearch()函数: Request["rows"]代表当前页面有多少行,Request["page"]代表当前页,这两个是easyUI-datagrid自带的只要用到分页,就会有这两个,不需要顾虑。recordCount代表搜索到的数据总数,这个会在Model里求出。并可在这里调用。
public ActionResult DeviceDetialListSearch()
{
FADeviceInfoModel deviceInfoModel = new FADeviceInfoModel();
int pageSize = int.Parse(Request["rows"]);
int nowPage = int.Parse(Request["page"]);
int recordCount = ; //搜索条件下的总记录数量
DataTable dtDeviceInfo = deviceInfoModel.SearchForDetail(pageSize, nowPage,out recordCount, Request["DeviceName"], Request["startTime"], Request["endTime"]);
return Content(MyJson.DataTableToJsonByPage(dtDeviceInfo, recordCount, ""));
}
四、Model里SearchForDetail()函数
public DataTable SearchForDetail(int pageSize, int nowPage, out int recordCount,string DeviceName, string startTime, string endTime)
{
string sqlCondition = " ";
if (startTime != null && !startTime.Equals(""))
sqlCondition += " and FADeviceInfo.ReleaseTime >= '" + startTime + " 00:00:01' ";
if (endTime != null && !endTime.Equals(""))
sqlCondition += " and FADeviceInfo.ReleaseTime <= '" + endTime + " 23:59:59' ";
if (DeviceName != null && !DeviceName.Equals(""))
sqlCondition += " and (FADeviceInfo.DeviceName like '%" + DeviceName + "%' or FADeviceInfo.DeviceInputCode like '%" + DeviceName + "%')"; string sqlOrder = " order by DeviceId desc ";
string sqlResult = " DeviceId,DeviceStatus,DeviceCode,DeviceName,DepartmentName,DeviceSpec,DeviceUnitName,OriginalValue,MakePlace,BuyTime,FinancialCode "; string sqlSon = "(select top " + (nowPage - ) * pageSize + " DeviceId from FADeviceInfo " + sqlOn + " where 1 = 1 " + sqlCondition + sqlOrder + ")";
string sql = " select top " + pageSize + sqlResult + " from FADeviceInfo " + sqlOn + " where DeviceId not in " + sqlSon + sqlCondition + sqlOrder;
string sqlCount = "select count(*) from FADeviceInfo " + sqlOn + " where 1 = 1 " + sqlCondition; DataTable dataTable = new DataTable();
dataTable = db.MyExecuteQuery(sql);
recordCount =db.GetCount(sqlCount);
return dataTable;
}
五、table转Json的函数DataTableToJsonByPage(),最下面添加Footer,如果你用不到页脚,就是统计总合计的,可以设置参数footer=“”,就OK了。
public static string DataTableToJsonByPage(DataTable dt, int total, string footer)
{
StringBuilder jsonBuilder = new StringBuilder();
//添加表格总行数
jsonBuilder.Append("{\"total\":" + total + ",\"rows\":");
//添加行数据
jsonBuilder.Append("[");
for (int i = ; i < dt.Rows.Count; i++)
{
jsonBuilder.Append("{");
for (int j = ; j < dt.Columns.Count; j++)
{
jsonBuilder.Append("\"");
jsonBuilder.Append(dt.Columns[j].ColumnName);
jsonBuilder.Append("\":\"");
jsonBuilder.Append(dt.Rows[i][j].ToString());
jsonBuilder.Append("\",");
}
jsonBuilder.Remove(jsonBuilder.Length - , );
jsonBuilder.Append("},");
}
if (dt.Rows.Count != )
{
jsonBuilder.Remove(jsonBuilder.Length - , );
}
jsonBuilder.Append("]");
//添加Footer
jsonBuilder.Append(",\"footer\":[");
jsonBuilder.Append(footer);
jsonBuilder.Append("]}"); jsonBuilder = jsonBuilder.Replace("\n", "").Replace("\r", "");
return jsonBuilder.ToString();
}
ASP.NET MVC easyUI-datagrid 分页的更多相关文章
- asp.net mvc easyui datagrid分页
提到 asp.net mvc 中的分页,很多是在用aspnetpager,和easyui datagrid结合的分页却不多,本文介绍的是利用easyui 中默认的分页控件,实现asp.net mvc分 ...
- .Net Mvc EasyUI DataGrid 分页
由于项目的需要,最近一直在学习 .net MVC 和EasyUI.上周写了一个<.Net Mvc 返回Json,动态生成EasyUI Tree>,今天再写一个EasyUI中另一个重要的组件 ...
- Asp.Net MVC EasyUI DataGrid查询分页
function doSearch() { //查询方法 var searchValue = $('#txtQueryTC001').textbox('getText'); $('#dgCMSTC') ...
- ASP.NET MVC+EasyUI+Entity FrameWork 整合开发
本文详细讲解怎么用ASP.NET MVC+EasyUI+Entity FrameWork 来开发一个项目 对于ASP.NET MVC的Jscript库,主要引用 <script type=.mi ...
- EasyUI DataGrid分页数据绑定
记录东西感觉很痛苦,总结东西很痛苦,麻烦,不过为了下次的方便和知识的牢固以后要坚持总结. EasyUI DataGrid分页数据绑定 在解决方案中新建两个文件FormMain.aspx(html也可以 ...
- ASP.NET MVC +EasyUI 权限设计(二)环境搭建
请注明转载地址:http://www.cnblogs.com/arhat 今天突然发现博客园出问题了,老魏使用了PC,手机,平板都访问博客园了,都是不能正常的访问,原因是不能加载CSS,也就是不能访问 ...
- ASP.NET MVC +EasyUI 权限设计(一)开篇
在前一段时间中,老魏的确非常的忙碌,Blog基本上没有更新了,非常的抱歉,那么在后面的时间中,老魏会尽量的抽时间来写的,可能时间上就不太富裕了.今天开始呢,老魏会和大家分享一下关于权限设计的有关文章, ...
- EasyUI datagrid 分页Json字符串格式
//EasyUI datagrid 分页Json字符串格式 //{"total":xx,"rows":[{...},{...}]} total:总数 rows: ...
- ASP.NET MVC利用PagedList分页(二)PagedList+Ajax+JsRender
(原文) 昨天在ASP.NET MVC利用PagedList分页(一)的 最后一节提到,一个好的用户体验绝对不可能是点击下一页后刷新页面,所以今天来说说利用Ajax+PagedList实现无刷新(个人 ...
- 对Spring.Net+NHibenate+Asp.Net Mvc+Easyui框架的个人认识
对Spring.Net+NHibenate+Asp.Net Mvc+Easyui框架的个人认识 初次接触Spring.Net+NHibenate+Asp.Net Mvc+Easyui框架,查阅了相 ...
随机推荐
- 简单介绍Collection框架的结构
Collection:List列表,Set集 Map:Hashtable,HashMap,TreeMap Collection 是单列集合 List 元素是有序的.可重复 有序的 collect ...
- 剑指offer——59二叉搜索树的第k大节点
题目描述 给定一棵二叉搜索树,请找出其中的第k小的结点.例如, (5,3,7,2,4,6,8) 中,按结点数值大小顺序第三小结点的值为4. 题解: 考察的就是中序遍历 不过注意进行剪枝 cl ...
- JSON 教程首页
JSON教程 JSON或JavaScript对象表示法是一个轻量级的基于文本的开放式标准,旨在为人类可读的数据交换. JSON格式最初是由Douglas Crockford规定,在RFC4627中描述 ...
- Feign 系列(03)Feign 工作原理
目录 Feign 系列(03)Feign 工作原理 1. Feign 是如何设计的 2. Feign 动态代理 2.1 ReflectiveFeign 构建 2.2 生成代理对象 2.3 Method ...
- Keepalived 双主虚拟路由配置实例
Keepalived 双主虚拟路由配置实例 演示前说明: 2台centos7.2 主机:node-00,node-01 VIP1:10.1.38.19预定node-00占有 VIP2:10.1.38. ...
- docker Dockerfile学习---构建redis环境
1.创建项目目录并下载包及文件 mkdir centos_redis cd centos_redis wget http://download.redis.io/releases/redis-5.0. ...
- codeforces750E New Year and Old Subsequence 矩阵dp + 线段树
题目传送门 思路: 先看一个大牛的题解 题解里面对矩阵的构造已经写的很清楚了,其实就是因为在每个字符串都有固定的很多中状态,刚好可以用矩阵来表达,所以$(i,j)$这种状态可以通过两个相邻的矩阵的$m ...
- fedora 28 missing PROG bison
yum install bison Missing PROG dlltool Missing PROG flex Missing PROG mt
- Python自学:第四章 复制列表(1)
# -*- coding: GBK -*- my_foods = ['pizza', 'falafel', 'carrot cake'] friend_foods = my_foods[:] prin ...
- php数组函数,遍历数组的几种方法
数组创建: 1.array(): 生成一个数组 $a=array("Dog","Cat","Horse"); print_r($a);数组值 ...