/// <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. linux中iptables配置文件及命令详解

    转自:https://www.cnblogs.com/itxiongwei/p/5871075.html iptables配置文件 直接改iptables配置就可以了:vim /etc/sysconf ...

  2. numpy&matplotlib读书笔记

    Matplotlib matplotlib是Python优秀的数据可视化第三方库 matplotlib库的效果可参考 http://matplotlib.org/gallery.html matplo ...

  3. Linux系统安装 OpenSSL两种方法

    OpenSSL是一个开源的ssl技术,由于安装pytbull,需要安装openssl,并下载对应的版本下载地址:https://www.openssl.org/source/ 方法一,编译安装Open ...

  4. 制作系统U盘

    没有任何宣传软件成分昂,我就是这做的. 1.在百度搜索上搜索“通用PE大师”,点开了这个网站http://up.6615261.cn/index.html,打开之后如下图,下载这个二合一版本 2.在电 ...

  5. hive 使用反射函数

    在hive中通过反射,调用java.net.URLDecoder,解码url 代码入下: select reflect('java.net.URLDecoder', 'decode',url, 'UT ...

  6. day20_雷神_django第三天

    django第三天 动态路由,实现统一删除功能 urls url(r'^host_del/(host|user|group)/(\d+)$',views.host_del,name='del'), t ...

  7. VSCode插件开发全攻略(一)概览

    文章索引 VSCode插件开发全攻略(一)概览 VSCode插件开发全攻略(二)HelloWord VSCode插件开发全攻略(三)package.json详解 VSCode插件开发全攻略(四)命令. ...

  8. ESB开发WebService接口

    1 概述 在进行系统间集成时经常利用WebService,但是从建立WebService和调用的重复性和维护性的工作量都相当大. 首先简单介绍一下,ESB全称为Enterprise Service B ...

  9. C语言窗口例子

    #include <windows.h> LRESULT CALLBACK WndProc( HWND, UINT, WPARAM, LPARAM ) ; //声明用来处理消息的函数 in ...

  10. 基于HTTP的长轮询简单实现

    Web客户端与服务器之间基于Ajax(http)的常用通信方式,分为短连接与长轮询. 短连接:客户端和服务器每进行一次HTTP操作,就建立一次连接,任务结束就中断连接. 在长轮询机制中,客户端像传统轮 ...