/// <summary>
/// 获取设备数量
/// </summary>
/// <param name="Organid">单位ID</param>
/// <param name="Name">模糊查询单位名称</param>
/// <returns></returns>
public IList<Devicelist> GetDeviceList(string Organid, string Name, int startIndex, int resultCount, ref int recordCount)
{
string sqlwhere = " and 1=1";
if (!string.IsNullOrEmpty(Name))
{
sqlwhere += " and s.organ_name like '%" + Name + "%' ";
}
if (!string.IsNullOrEmpty(Organid))
{
sqlwhere += " and s.organ_id ='" + Organid + "'";
} string sql = string.Format("select decode(t.device_type,1,'电脑','平板') device_typeName,t.device_type,t.device_limit,s.organ_name,t.organ_id from sys_organization s,t_device_countlimit t where t.organ_id=s.organ_id ");
sql += sqlwhere+ "order by s.district_code";
if (!DataAccess.IsOpened)
DataAccess.OpenConnection();
DataTable dt = DataAccess.GetDataTable(sql.ToString());
if (DataAccess.IsOpened)
DataAccess.CloseConnection();
IList<Devicelist> list = new List<Devicelist>();
if(dt.Rows.Count>)
{
foreach(DataRow s in dt.Rows)
{
Devicelist model = new Devicelist();
model.TypeName = s["device_typeName"].ToString();
model.DeviceType = s["device_type"].ToString();
model.limit = Convert.ToInt32(s["device_limit"]);
model.Organid = s["organ_id"].ToString();
model.OrganName = s["organ_name"].ToString();
list.Add(model);
}
}
recordCount = list.Count; // 设置起始行和每页行数
IList<Devicelist> resultList = new List<Devicelist>();
if (startIndex != || resultCount != )
{
resultCount = recordCount > resultCount ? resultCount : recordCount;
for (int i = startIndex; i < resultCount; i++)
{
resultList.Add(list[i]);
}
}
else
{
for (int i = startIndex; i < recordCount; i++)
{
resultList.Add(list[i]);
}
} return resultList; }

控制器

   /// <summary>
/// 设备管理列表
/// </summary>
/// <returns></returns>
[HttpPost]
public ActionResult List()
{
Devicelist model = JsonConvert.DeserializeObject<Devicelist>(Request.Form["queryJson"]); string organid = model.Organid;
string OrganName = model.OrganName;
// 分页参数
int _RowsCount = ;
int currentPage = Convert.ToInt32(Request.Form["page"]); //页码
int _PageSize = Convert.ToInt32(Request.Form["rows"]); //每页显示数 IList<Devicelist> devices = _DeviceManagerRepository.GetDeviceList(organid,OrganName, (currentPage - ) * _PageSize, _PageSize * currentPage, ref _RowsCount); IList<Devicelist> PageList = new List<Devicelist>();
Devicelist listmodel = null; foreach(var s in devices)
{
listmodel = new Devicelist();
listmodel.Organid = s.Organid;
listmodel.OrganName = s.OrganName;
listmodel.TypeName = s.TypeName;
listmodel.DeviceType = s.DeviceType;
listmodel.limit = s.limit;
PageList.Add(listmodel);
} PagedResult<Devicelist> page = new PagedResult<Devicelist>
{
rows = PageList.ToList(),
records = _RowsCount,
page = currentPage,
pagesize = _PageSize
}; return Json(page);
}

PagedResult

    /// <summary>
/// 分页结果
/// </summary>
/// <typeparam name="T"></typeparam>
public class PagedResult<T>
{
/// <summary>
/// ctor
/// </summary>
public PagedResult()
{
rows = new List<T>();
} /// <summary>
/// ctor with params
/// </summary>
/// <param name="pageIndex">当前页码</param>
/// <param name="pageSize">每页显示数量</param>
public PagedResult(int pageIndex, int pageSize)
{
page = pageIndex;
pagesize = pageSize;
} /// <summary>
/// 总记录数
/// </summary>
public int records { set; get; }
/// <summary>
/// 当前页的所有项
/// </summary>
public IList<T> rows { set; get; }
/// <summary>
/// 当前页
/// </summary>
public int page { set; get; }
/// <summary>
/// 页大小
/// </summary>
public int pagesize { set; get; }
/// <summary>
/// 页总数
/// </summary>
public int total { get { return records.CeilingDivide(pagesize); } }
}

c# 后台分页 jqgrid的更多相关文章

  1. jqGrid jqGrid分页参数+条件查询

    HTML <div class="row"> <div class="col-sm-20"> <form id="for ...

  2. Jqgrid的用法总结与分页功能的拓展

    这是本人写的第一个与技术相关的博客,但是非挑战技术的,而是对工作的总结,另外加一点点拓展. Jqgrid的功能十分强大,强大到可以做到与数据grid相关的任何功能,同时由于在用的过程中总是不能够一气呵 ...

  3. jqGrid 分页

    这两天一直在搞jqGrid分页,焦头烂额,不过还是有点收获的(主要是后台分页):   jqGrid分页可以分为两种,远程数据(服务器数据)分页和本地数据分页,     先看远程数据分页:   $(&q ...

  4. SSM+PageHelper+jqGrid实现数据分页

    前言 前几天自己写了一个分页功能,代码逻辑写的很乱今天发现jqGrid这个工具是真好用,故记录下来方便以后使用首先是PageHelper后台分页工具PageHelper的原理是基于拦截器实现的 具体流 ...

  5. 基于jqgrid + ashx + nhibernate的分页

    因为我目前运维的是一个webform项目,项目中未用到分页的功能,我百度了很多文章也没有一篇是结合jqgrid + ashx + nhibernate的分页,可能是因为后台要请求ashx的原因,不像m ...

  6. jqGrid合并表头

    jqGrid是一款常用的制表软件,最近开发刚好用到.记录一下常用功能留着以后查找顺便发扬一下开源精神. 二级表头是一种经常会碰到的需求,很多时候为了方便查找需要在原有的表头上再加一层,区分表格不同列的 ...

  7. jqGrid插件getCol方法的一个改进

    jgGrid插件是非常常用的一个基于jQuery的表格插件,功能非常强大.我最近也频繁使用.但是这个插件也有一些不够完善的地方.比如这个getCol方法. getCol方法接受三个参数 colname ...

  8. jqgrid+bootstrap样式实践

    jqgrid+bootstrap样式实践,报错数据加载,选中,删除等功能 需要引入的样式 bootstrap.min.css ui.jqgrid.css 需要引入的JS jquery.min.js b ...

  9. 重复加载同一个jqgrid

    重复加载同一个jqgrid时需要先清除原先的数据,再进行加载新的数据: 清除时使用方法:jQuery.jgrid.gridUnload('jqGridId'); 同时还有一个GridDestroy的方 ...

随机推荐

  1. Shell文本操作-5

  2. C语言 字符二维数组(多个字符串)探讨 求解

    什么是二维字符数组? 二维字符数组中为什么定义字符串是一行一个? “hello world”在C语言中代表什么? 为什么只能在定义时才能写成char   a[10]="jvssj" ...

  3. 在windows上安装wamp时遇到apache无法启动,图标为橙色

    1.首先测试端口号是否被占用,如果端口号被占用,修改相对应文件的端口号,修改端口号的方法网上很容易搜到. 2.如果端口号没有被占用,cd到httpd.exe目录下,查看错误原因,这里我显示的错误是ht ...

  4. 面试官问我,使用Dubbo有没有遇到一些坑?我笑了。

    前言 17年的时候,因为一时冲动没把持住(当然最近也有粉丝叫我再冲动一把再更新一波),结合面试题写了一个系列的Dubbo源码解析.目前公众号大部分粉丝都是之前的粉丝,这里不过多介绍. 根据我的面试经验 ...

  5. Tools - 负载性能测试工具JMeter

    JMeter简介 HomePage:http://jmeter.apache.org/ Apache JMeter是Apache组织开发的基于Java的开源负载性能测试工具. 可以用于对服务器.网络应 ...

  6. 10 种保护 Spring Boot 应用的绝佳方法

    原文:developer.okta.com/blog/2018/07/30/10-ways-to-secure-spring-boot 译文:www.jdon.com/49653 Spring Boo ...

  7. Vue-router导航问题

    现在的项目,用的是Vue,但当时用的时候,是边学边做的,上手确实比较简单,但是已经用Vue写了一个项目了,但是感觉对Vue的还是不是很深刻,用的都是比较简单的API, 现在回头看看,有些东西,非常的精 ...

  8. 两种方法:VS2008下C++窗体程序显示控制台的方法——在QT程序中使用cout和cin

    老蔡写了一个基于QT的窗体程序,而过去写的类的调试信息都是用cout显示的,苦于窗体程序无法显示cout信息很多信息都看不到,于是就想到让控制台和窗体同时显示.显示控制台方法如下 1.项目(或者叫“工 ...

  9. jsp fmt页面显示value does not support runtime expressions

    最近使用Struts2+Spring3+Mybatis3做一个项目,在用户修改页面显示生日, <fmt:formatDate value="${user.birthday}" ...

  10. TCP传输

    看过太多tcp相关文章,但是看完总是不过瘾,似懂非懂,反复考虑过后,我觉得是那些文章太过理论,看起来没有体感,所以吸收不了. 希望这篇文章能做到言简意赅,帮助大家透过案例来理解原理. tcp的特点 这 ...