easyui

匿名 (未验证) 提交于 2019-12-02 21:53:52

最近在学习easyui的使用,在学到datagrid的时候遇到了一些问题,终于抽点时间整理了一下,分享出来,请各位前辈高手多多指教!

2、easyui的datagrid的使用方法

在这里,datagrid的使用我不做过多讲解,俺毕竟是初学者,不敢班门弄斧。所以就简单带一下。

①、在easyui的layout中的center中定义一个table,id为“datagridTable”。

<div region="center" border="false">                      <table id="datagridTable"></table>                  </div>

②、使用javascript的方式让这个table变为一个easyui的datagrid。当然也可以给这个table指定class属性为“easyui-datagrid”,两种方式都可以,萝卜白菜,各有所爱。由于datagrid和后台的数据交互打交道的比较多,所以俺使用的功能比较好控制的javascript方式定义。

代码如下,其中具体的属性和方法请查看easyui文档,官网地址:http://www.jeasyui.com/documentation/datagrid.php

<script type="text/javascript">           $(function() {               $("#datagridTable").datagrid({                   url : 'getUsers',                   title : '用户列表',                   pagination : true,                   pageSize : 10,                   pageList : [ 10, 20, 30, 40 ],                   fit : true,//自适应窗口大小变化                   fitColumns : true,                   border : false,                   idField : 'id',                   columns : [ [ {                       title : '用户编号',                       field : 'id',                       width : 100                   //宽度必须,数值随便                   }, {                       title : '用户名',                       field : 'username',                       width : 100                   }, {                       title : '用户密码',                       field : 'password',                       width : 100                   },{                       title:'注册时间',                       field:'date',                       width:100                   } ] ],                   toolbar : [ {                       text : '增加',                       iconCls : 'icon-add',                       handler : function() {                       }                   }, '-', {                       text : '删除',                       iconCls : 'icon-remove',                       handler : function() {                       }                   }, '-', {                       text : '编辑',                       iconCls : 'icon-edit',                       handler : function() {                       }                   } ]                //两个[],实现多级表头,合并单元格的效果,产生不规则表头                 });   });


@Controller(value = "GetUserAction")   @Scope("prototype")   public class GetUserAction {       //使用spring的annotation注入       @Resource(name = "userDao")       private UserDao ud;       //page和rows属性,是easyui分页工具的属性,名字固定,便于struts2的自动封装和类型装换,可以通过Firebug看到。       private int page;       private int rows;           //省略的set/get方法        public String getUsers() {           //存放数据的list           List<User> users = new ArrayList<User>();           //这个User是后来做数据过滤的时候封装的过滤条件。           User u =new User();           //使用spring的BeanUtils工具,复制属性到u里面。           BeanUtils.copyProperties(this, u);           //后台的getUsers方法,这里我省略了service层,采用domain,action,dao,daoImpl架构,功能简单,就没加上service这一层。           users = (List<User>) ud.getUsers(page, rows, u);                      Map<String, Object> m = new HashMap<String, Object>();           //total是easyui分页工具的总页数。名字固定。         m.put("total", ud.getTotal(page, rows, u));           m.put("rows", users);           //自己写了一个java对象转换成json的工具类,俺用的是jackson,使用json-lib的同学可以自己写一个。不过jaon-lib的转换速度比较慢,没有jackson快。           JSONParser.writeJson(m);           return "success";       }   }

@Service("userDao")   public class UserDaoImpl implements UserDao {              //注入hibernate的sessionFactory,不多说。       @Resource(name = "sessionFactory")       private SessionFactory sessionFactory;        //过滤条件,动态拼接HQL语句。       public String addWhere(String hql, User u) {            if (u.getUsername() != null && !u.getUsername().trim().equals("")) {               hql += " where 1=1 and u.username like '%%" + u.getUsername()                       + "%%'";           }           return hql;       };       //设置为只读事务       @Override       @Transactional(readOnly = true)       public List<?> getUsers(int page, int rows, User u) {            String hql = "from User u ";           hql = addWhere(hql, u);           Query query = sessionFactory.getCurrentSession().createQuery(hql);                     //hibernate的分页就依靠这两个set方法,详情请查看API文档。           query.setFirstResult((page - 1) * rows);           query.setMaxResults(rows);           //将结果以list返回。           return query.list();        }       //getTotal方法第一种写法,使用HQL的count函数       @Override       @Transactional(readOnly = true)       public Long getTotal(int page, int rows, User u) {            String hql="   select count(*) from  User u";           hql=addWhere(hql, u);            Query query = sessionFactory.getCurrentSession().createQuery(hql);           //注意类型为Long。           return (Long) query.list().get(0);       }       /**       //getTotal方法的第二种写法,不使用HQL的count函数。       @Override       @Transactional(readOnly = true)       public  List<?> getTotal(int page, int rows, User u) {           //不适用count,查询所有的,action通过ud.getUsers(page,rows,u).size()获得total。性能较差,毕竟我只要一个           //count数值,hibernate却list所有的之后在求size()。          String hql=" from  User u";                   hql=addWhere(hql, u);            Query query = sessionFactory.getCurrentSession().createQuery(hql);            return query.list();       }       */   }



写下这篇文章,一是为了本着分享精神能与大家共同学习,探讨和进步。二是为了记录一下学习笔记,以备日后只需,查阅方便。不正确指出,望大家多多批评指正。(我的CSDN博客也有这篇文。。(⊙o⊙))

后续我将把JSONParser的代码分享一下,用于将list转换成标准的json格式。

文章来源: easyui
标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!