EasyUI学习之DataGird分页显示数据


Posted in Javascript onDecember 29, 2016

本文实例为大家分享了EasyUI DataGird的使用方法,供大家参考,具体内容如下

1. html代码

<table 
  id="grid" 
  style="width: 940px" 
  title="用户操作" 
  data-options="iconCls:'icon-view'">
</table>

2.显示

EasyUI学习之DataGird分页显示数据

3.js代码

// 页面加载后显示表数据
$(function() {
  var queryData = {};// 可添加一些预设条件
  InitGrid(queryData);// 初始化Datagrid表格数据
});

// 实现对DataGird控件的绑定操作
function InitGrid(queryData) {
  $('#grid').datagrid({ // 定位到Table标签,Table标签的ID是grid
    url : 'getNoticesByUserId',// 指向后台的Action来获取当前用户的信息的Json格式的数据
    title : '公告管理',
    iconCls : 'icon-view',
    height : 650,
    width : function() {
      return document.body.clientWidth
    },// 自动宽度
    pagination : true,
    rownumbers : true,
    sortName : 'title', // 根据某个字段给easyUI排序
    pageSize : 20,
    sortOrder : 'asc',
    remoteSort : false,
    idField : 'id',
    queryParams : queryData, // 异步查询的参数
    columns : [ [ {
      field : 'ck',
      width : '1%',
      checkbox : true
    }, {
      title : '标题',
      field : 'title',
      width : '9%',
      sortable : true,
      halign : 'center'
    }, {
      title : '发布人',
      field : 'userName',
      width : '10%',
      sortable : true,
      halign : 'center'
    }, {
      title : '内容',
      field : 'content',
      width : '50%',
      sortable : true,
      halign : 'center',
      sortable : false
    }, {
      title : '创建日期',
      field : 'createDate',
      width : '20%',
      sortable : true,
      halign : 'center',
      align : 'center',
      sortable : false
    } ] ],
    toolbar : [ {
      id : 'btnAdd',
      text : '添加',
      iconCls : 'icon-add',
      handler : function() {
        ShowAddDialog();// 实现添加记录的页面
      }
    }, '-', {
      id : 'btnEdit',
      text : '修改',
      iconCls : 'icon-edit',
      handler : function() {
        ShowEditDialog();// 实现修改记录的方法
      }
    }, '-', {
      id : 'btnDelete',
      text : '删除',
      iconCls : 'icon-remove',
      handler : function() {
        Delete();// 实现直接删除数据的方法
      }
    } ]
  });

};

4.Json数据

{
  "total": 2,
  "rows":[{
      "content": "11",
      "createDate": "2016-12-15 23:03:50",
      "id": 1,
      "title": "11",
      "userName": "789"

    }, {
      "content": "我是",
      "createDate": "2016-12-16 20:10:03",
      "id": 4,
      "title": "为",
      "userName": "789"
    }
  ]
}

5.Java后台封装

/********************1.action代码*******************/
private NoticeManager noticeManager;
private int page;
private int rows;
Map<String, Object> map = new HashMap<String, Object>();

public NoticeManager getNoticeManager() {
  return noticeManager;
}
public void setNoticeManager(NoticeManager noticeManager) {
  this.noticeManager = noticeManager;
}
public int getPage() {
  return page;
}
public void setPage(int page) {
  this.page = page;
}
public int getRows() {
  return rows;
}
public void setRows(int rows) {
  this.rows = rows;
}
public Map<String, Object> getMap() {
  return map;
}
public void setMap(Map<String, Object> map) {
  this.map = map;
}

/**
 * @Title: getNoticesByUserId 
 * @Description: TODO(获取首页显示的所有公告数据) 
 * @return??? 设定文件
 * @return String??? 返回类型
 * @throws
 */
public String getNoticesByUserId() {
  // 存放数据的list
  List<ANotice> aNotices = new ArrayList<ANotice>();
  User u = (User) getSession().get("LoginUser");
  List<Notice> notices = noticeManager.GetNotices(page, rows, u.getId());

  for (Notice notice : notices) {
    ANotice aNotice = new ANotice();
    aNotice.setId(notice.getId());
    aNotice.setTitle(notice.getTitle());
    aNotice.setCreateDate(notice.getCreateDate());
    aNotice.setUserName(u.getUsername());
    aNotice.setContent(notice.getContent());
    aNotices.add(aNotice);
  }

  // total是easyui分页工具的总页数。名字固定。
  map.put("total", noticeManager.getTotal(page, rows, u.getId()));
  map.put("rows", aNotices);

  return SUCCESS;
}

// total是easyui分页工具的总页数。名字固定。
map.put("total", noticeManager.getTotal(page, rows, u.getId()));
map.put("rows", aNotices);

/********************2.Manager代码*******************/
@Override
public List<Notice> GetNotices(int page, int rows, int userId) {    
  String hql="From Notice Where 1=1 and userId = ?";
  return dao.find(hql, new Object[]{userId}, page, rows);   
}

@Override
public Long getTotal(int page, int rows, int userId) { 
  String hql="select count(*) from Notice Where 1=1 and userId = ?";
  return dao.count(hql, new Object[]{userId});
}

/********************3.dao代码*******************/
public List<T> find(String hql, Object[] param, Integer page, Integer rows) {
  if (page == null || page < 1) { 
    page = 1; 
  }
  if (rows == null || rows < 1) {
    rows = 10; 
  } 
  Query q = this.getCurrentSession().createQuery(hql); 
  if (param != null && param.length > 0) { 
    for (int i = 0; i < param.length; i++) { 
      q.setParameter(i, param[i]); 
    } 
  } 
  return q.setFirstResult((page - 1) * rows).setMaxResults(rows).list(); 
}

6.struts配置文件

<!--前后台通过Json方式传输数据 -->
<package name="jsonPackage" extends="struts-default,json-default">
  <action name="getNoticesByUserId" class="NoticeAction" method="getNoticesByUserId">
    <!-- 返回json类型数据 -->
    <result name="success" type="json">
      <param name="root">map</param>
    </result>
  </action>
</package>

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
JavaScript lastIndexOf方法入门实例(计算指定字符在字符串中最后一次出现的位置)
Oct 17 Javascript
jQuery中的siblings用法实例分析
Dec 24 Javascript
AngularJS进行性能调优的7个建议
Dec 28 Javascript
关于List.ToArray()方法的效率测试
Sep 30 Javascript
AngularJS点击添加样式、点击变色设置的实例代码
Jul 27 Javascript
解决Vue使用mint-ui loadmore实现上拉加载与下拉刷新出现一个页面使用多个上拉加载后冲突问题
Nov 07 Javascript
分享ES6的7个实用技巧
Jan 18 Javascript
详解自定义ajax支持跨域组件封装
Feb 08 Javascript
原生JS+HTML5实现的可调节写字板功能示例
Aug 30 Javascript
webpack4打包vue前端多页面项目
Sep 17 Javascript
微信小程序自定义单项选择器样式
Jul 25 Javascript
javascript实现左右缓动动画函数
Nov 25 Javascript
EasyUI学习之Combobox级联下拉列表(2)
Dec 29 #Javascript
js生成随机颜色方法代码分享(三种)
Dec 29 #Javascript
js实现把图片的绝对路径转为base64字符串、blob对象再上传
Dec 29 #Javascript
jQuery实现6位数字密码输入框
Dec 29 #Javascript
JQuery统计input和textarea文字输入数量(代码分享)
Dec 29 #Javascript
jQuery中的siblings()是什么意思(推荐)
Dec 29 #Javascript
JQuery获取鼠标进入和离开容器的方向
Dec 29 #Javascript
You might like
全国FM电台频率大全 - 7 吉林省
2020/03/11 无线电
PHP新手上路(十四)
2006/10/09 PHP
PHP 利用AJAX获取网页并输出的实现代码(Zjmainstay)
2012/08/31 PHP
PHP用身份证号获取星座和生肖的方法
2013/11/07 PHP
destoon利用Rewrite规则设置网站安全
2014/06/21 PHP
php实现给二维数组中所有一维数组添加值的方法
2017/02/04 PHP
javascript(jquery)利用函数修改全局变量的代码
2009/11/02 Javascript
document.all的一个比较完整的总结及案例
2013/01/31 Javascript
javascript学习笔记(二)数组和对象部分
2014/09/30 Javascript
基于jQuery实现的旋转彩圈实例
2015/06/26 Javascript
全面解析Bootstrap弹窗的实现方法
2015/12/01 Javascript
JavaScript原生编写《飞机大战坦克》游戏完整实例
2017/01/04 Javascript
浅析javaScript中的浅拷贝和深拷贝
2017/02/15 Javascript
利用纯js + transition动画实现移动端web轮播图详解
2017/09/10 Javascript
彻底理解js面向对象之继承
2018/02/04 Javascript
在vue项目中引入highcharts图表的方法
2019/01/21 Javascript
基于canvasJS在PHP中制作动态图表
2020/05/30 Javascript
js模拟实现百度搜索
2020/06/28 Javascript
[01:12:27]EG vs Secret 2018国际邀请赛淘汰赛BO3 第二场 8.22
2018/08/23 DOTA
Python selenium 三种等待方式详解(必会)
2016/09/15 Python
tensorflow saver 保存和恢复指定 tensor的实例讲解
2018/07/26 Python
python识别图像并提取文字的实现方法
2019/06/28 Python
Python列表推导式实现代码实例
2020/09/09 Python
css3实现信纸/同学录效果的示例代码
2018/12/11 HTML / CSS
HTML5中使用postMessage实现两个网页间传递数据
2016/06/22 HTML / CSS
Java中实现多态的机制
2015/08/09 面试题
网络安全方面的面试题
2015/11/04 面试题
本科生的职业生涯规划范文
2014/01/09 职场文书
幼教毕业生自我鉴定
2014/01/12 职场文书
项目建议书怎么写
2014/05/15 职场文书
2014年法制宣传日活动方案
2014/11/02 职场文书
房产公证书格式
2015/01/26 职场文书
2015年信访维稳工作总结
2015/04/07 职场文书
民事诉讼答辩状范文
2015/05/21 职场文书
安全生产隐患排查制度
2015/08/05 职场文书
MySQL高级进阶sql语句总结大全
2022/03/16 MySQL