记录东西感觉很痛苦,总结东西很痛苦,麻烦,不过为了下次的方便和知识的牢固以后要坚持总结。

EasyUI DataGrid分页数据绑定

在解决方案中新建两个文件FormMain.aspx(html也可以)和Handler1.ashx(一般处理程序)。

前台页面很简单

<div id="datagrid"></div>

 绑定该datagrid的代码

<script type="text/javascript">
  $(document).ready(function () {
    $('#datagrid').datagrid({
      url: 'Handler1.ashx',
      method: 'get',
      showHeader: false,//定义是否显示行头
      striped: true,//是否显示斑马线效果
      nowrap: true,//如果为true,则在同一行中显示数据。设置为true可以提高加载性能
      fitColumns: true,//真正的自动展开/收缩列的大小,以适应网格的宽度,防止水平滚动
      rownumbers: true,//如果为true,则显示一个行号列
      pagination: true,//如果为true,则在DataGrid控件底部显示分页工具栏
      idField: 'Box_code',//指明哪一个字段是标识字段
      singleSelect: true,
      columns: [[
        { field: 'Box_code', title: 'Item ID', width: 100,         styler: function (value, row, index) {
        return 'border:0;';         }},         { field: 'Box_name', title: 'Product', width: 100 },
        { field: 'StorageSite_code', title: 'List Price', width: 100 },
        { field: 'Box_Tag', title: 'unitcost', width: 100 }
      ]],
      onSelect: function (index, row) {
        var opt = $(this).datagrid("options");
        var rows1 = opt.finder.getTr(this, "", "selected", 1);
        var rows2 = opt.finder.getTr(this, "", "selected", 2);
        if (rows1.length > 0) {
          $(rows1).each(function () {
            var tempIndex = parseInt($(this).attr("datagrid-row-index"));
            if (tempIndex == index) {
              $(this).css('color', 'blue');
              $(this).css('background-color', 'lightblue');
            }
          });
        }
        if (rows2.length > 0) {
          $(rows2).each(function () {
            var tempIndex = parseInt($(this).attr("datagrid-row-index"));
            if (tempIndex == index) {
              $(this).css('color', 'blue');
              $(this).css('background-color', 'lightblue');
            }
          });
        }       }, //取消选中变灰色
      onUnselect: function (index, row) {
        var opt = $(this).datagrid("options");
        var rows1 = opt.finder.getTr(this, "", "allbody", 1);
        var rows2 = opt.finder.getTr(this, "", "allbody", 2);
        if (rows1.length > 0) {
          $(rows1).each(function () {
            var tempIndex = parseInt($(this).attr("datagrid-row-index"));
            if (tempIndex == index) {
              $(this).css('color', 'black');
              $(this).css('background-color', 'white');
            }
          });
        }
        if (rows2.length > 0) {
          $(rows2).each(function () {
            var tempIndex = parseInt($(this).attr("datagrid-row-index"));
            if (tempIndex == index) {
              $(this).css('color', 'black');
              $(this).css('background-color', 'white');
            }
          });
        }
      }      });     //设置分页控件
    var p = $('#datagrid').datagrid('getPager');
    $(p).pagination({
      pageSize: 10,//每页显示的记录条数,默认为10
      pageList: [5, 10, 15],//可以设置每页记录条数的列表
      beforePageText: '第',//页数文本框前显示的汉字
      afterPageText: '页 共 {pages} 页',
      displayMsg: '当前显示 {from} - {to} 条记录 共 {total} 条记录',
      /*onBeforeRefresh:function(){
      $(this).pagination('loading');
      alert('before refresh');
      $(this).pagination('loaded');
      }*/
    });
  });
</script>

  

一般处理程序代码,为了演示就在这里直接查数据库了

public void ProcessRequest(HttpContext context)
{
  context.Response.ContentType = "text/plain";
  int pageRows, page;
  pageRows = 10;
  page = 1;
  if (null != context.Request.QueryString["rows"])
  {//获取前台传过来的每页显示数据的条数
    pageRows = int.Parse(context.Request.QueryString["rows"].ToString().Trim());
  }
  if (null != context.Request.QueryString["page"])
  {
    //获取当前的页码
    page = int.Parse(context.Request.QueryString["page"].ToString().Trim());
  }
  string sql = "SELECT TOP " + pageRows + " Box_code,Box_name,StorageSite_code,Box_Tag FROM ( SELECT ROW_NUMBER() OVER (ORDER BY Box_Code) AS RowNumber,Box_code,Box_name,StorageSite_code,Box_Tag FROM zh_box ) A WHERE RowNumber > " + pageRows + "*(" + page + "-1)";
  DataTable dt = ExecuteQuery(sql);
  string sqlCount = "select Count(Box_code) from zh_box";
  DataTable dtCount = ExecuteQuery(sqlCount);
  string jsonDt = DataTable2Json(dt, Convert.ToInt32(dtCount.Rows[0][0]));
  context.Response.Write(jsonDt);
} /// <summary>
/// dataTable转换成Json格式
/// </summary>
/// <param name="dt"></param>
/// <returns></returns>
public string DataTable2Json(DataTable dt,int allCount)
{
  StringBuilder jsonBuilder = new StringBuilder();
  jsonBuilder.Append("{");
  jsonBuilder.Append("\"total\":" + allCount + ",\"rows\":");
  jsonBuilder.Append("[");
  for (int i = 0; i < dt.Rows.Count; i++)
  {
    jsonBuilder.Append("{");
    for (int j = 0; 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 - 1, 1);
    jsonBuilder.Append("},");
  }
  jsonBuilder.Remove(jsonBuilder.Length - 1, 1);
  jsonBuilder.Append("]");
  jsonBuilder.Append("}");
  return jsonBuilder.ToString();
}

  

最终页面显示

EasyUI DataGrid分页数据绑定的更多相关文章

  1. EasyUI datagrid 分页Json字符串格式

    //EasyUI datagrid 分页Json字符串格式 //{"total":xx,"rows":[{...},{...}]} total:总数 rows: ...

  2. asp.net mvc easyui datagrid分页

    提到 asp.net mvc 中的分页,很多是在用aspnetpager,和easyui datagrid结合的分页却不多,本文介绍的是利用easyui 中默认的分页控件,实现asp.net mvc分 ...

  3. easyUI datagrid 分页参数page和rows

    Struts2获取easyUI datagrid 分页参数page和rows 用pageHelper分页时,只要是能够获取前台传来的两个参数page和rows基本就完成了很大一部分. 获取方法:定义两 ...

  4. EasyUI Datagrid 分页显示(客户端)

    转自:https://blog.csdn.net/metal1/article/details/17536185 EasyUI Datagrid 分页显示(客户端) By ZYZ 在使用JQuery ...

  5. 构建ASP.NET MVC4+EF5+EasyUI+Unity2.x注入的后台管理系统(8)-MVC与EasyUI DataGrid 分页

    系列目录 前言 为了符合后面更新后的重构系统,文章于2016-11-1日重写 EasyUI Datagrid在加载的时候会提交一些分页的信息到后台,我们需要根据这些信息来进行数据分页再次返回到前台 实 ...

  6. easyui datagrid 分页略解

    easyui datagrid 本身自带了分页功能. 但是这个需要你自己控制. 在后台可以得到两个datagrid的参数,rows 和page.其中rows是每页要显示的个数,page是第几页.单纯的 ...

  7. jquery easyui datagrid 分页详解

    由于项目原因,用了jquery easyui 感觉界面不错,皮肤样式少点,可是官网最近打不开了,资料比较少,给的demo没有想要的效果,今天在用datagrid 做分页显示的时候,折腾了半天,网上的资 ...

  8. easyui datagrid分页

    datagrid分页设置 pagination="true" 貌似是不行的!  只是显示分页工具栏 没有达到分页效果 前端 $(function (){ var p = $('#d ...

  9. .Net Mvc EasyUI DataGrid 分页

    由于项目的需要,最近一直在学习 .net MVC 和EasyUI.上周写了一个<.Net Mvc 返回Json,动态生成EasyUI Tree>,今天再写一个EasyUI中另一个重要的组件 ...

随机推荐

  1. shell shift 使用一例

    这段代码的作用是: 当输入 ./Export.sh 是将当前目录进行打包,当输入./Export.sh XX1 XX2 XX3 .... XXn 时,如果XXn存在,则依次将存在的目录进行打包,打包文 ...

  2. HttpSolrServer-采用静态工厂方法,创建HttpSolrServer单实例

    HttpSolrServer线程安全,如果使用下面构造器,必须对所有的请求重用相同的实例.如果实例在运行中创建的,它可能会导致连接泄漏.推荐的做法就是保持每个solr服务url的HttpSolrSer ...

  3. 使用block来解决实现switch解决字符串

    NSString *lookup=@"Hearts"; typedef void  (^CaseBlock)(); NSDictionary *diction=@{@"D ...

  4. C++模拟Java“内部”类

    代码思路来自Thinking in C++ 10.13.1内部类方法.类似多重继承,但是类型转换是单向的:Outer支持“向上”转型,但是不能“向下”转型回Outer. #include <io ...

  5. 【Linux/Ubuntu学习1】Linux /etc 目录详解

    /etc目录 包含很多文件.许多网络配置文件也在/etc 中. /etc/rc   or/etc/rc.d   or/etc/rc*.d   启动.或改变运行级时运行的scripts或scripts的 ...

  6. 查看Eclipse32位还是64位以及Eclipse的编译版本号,查看JDK是32位还是64位

    一.查看Eclipse是32位还是64位 首先进入到Eclipse的安装目录: 查找到文件名为"eclipse.ini" 文件,使用文本编辑工具,或记事本打开,如下图: 以上是查看 ...

  7. codeforces 675D D. Tree Construction(线段树+BTS)

    题目链接: D. Tree Construction D. Tree Construction time limit per test 2 seconds memory limit per test ...

  8. python学习好书推荐

    1.  编程小白的第一本 Python 入门书 http://www.ituring.com.cn/book/1863 点评:知识体系全面,作者也是功底深厚.对全面了解python非常有帮助.入门级推 ...

  9. 转:微信Android客户端架构演进之路

    转自: http://www.infoq.com/cn/articles/wechat-android-app-architecture 微信Android客户端架构演进之路 作者 赵原 发布于 20 ...

  10. java操作xml的一个小例子

    最近两天公司事比较多,这两天自己主要跟xml打交道,今天更一下用java操作xml的一个小例子. 原来自己操作xml一直用这个包:xstream-1.4.2.jar.然后用注解的方式,很方便,自己只要 ...