加载相关js和css,因为easyui依赖jquery,所有加载easyui前要先加载jquery,否则为提示找不到datagrid

  1. <!-- 加载jquery -->
  2. <script type="text/javascript" src="plugins/jquery/jquery-1.4.2.min.js"></script>
  3. <!-- 加载jquery-easyui -->
  4. <link rel="stylesheet" type="text/css" href="plugins/jquery/jquery-easyui-1.1.2/themes/default/easyui.css">
  5. <link rel="stylesheet" type="text/css" href="plugins/jquery/jquery-easyui-1.1.2/themes/icon.css">
  6. <script type="text/javascript" src="plugins/jquery/jquery-easyui-1.1.2/jquery.easyui.min.js"></script>

界面加入

  1. <table id="cxdm"></table>

加载datagrid的js代码

  1. //页面加载
  2. $(document).ready(function(){
  3. loadGrid();
  4. });
  5. //加载表格datagrid
  6. function loadGrid()
  7. {
  8. //加载数据
  9. $('#cxdm').datagrid({
  10. width: 'auto',
  11. height:300,
  12. striped: true,
  13. singleSelect : true,
  14. url:'getPsNewConsultList.action',
  15. //queryParams:{},
  16. loadMsg:'数据加载中请稍后……',
  17. pagination: true,
  18. rownumbers: true,
  19. columns:[[
  20. {field:'adviceid',title: '来文号',align: 'center',width: getWidth(0.2)},
  21. {field:'consulter',title: '案由',align: 'center',width: getWidth(0.45),
  22. //添加超级链,并将来文号作为参数传入
  23. formatter:function(val,rec){
  24. //alert(rec.adviceid);
  25. return "<a href='jsp/proposal/psconsultview.jsp?id="+rec.adviceid+"'>"+val+"</a>";
  26. }
  27. },
  28. {field:'content',title: '状态',align: 'center',width: getWidth(0.2)},
  29. {field:'replynumber',title: '回复数',align: 'center',width: getWidth(0.05)}
  30. ]]
  31. });
  32. }
  33. //为loadGrid()添加参数
  34. var queryParams = $('#cxdm').datagrid('options').queryParams;
  35. queryParams.who = who.value;
  36. queryParams.type = type.value;
  37. queryParams.searchtype = searchtype.value;
  38. queryParams.keyword = keyword.value;
  39. //重新加载datagrid的数据
  40. $("#cxdm").datagrid('reload');

datagrid添加参数的方式

  1. //为loadGrid()添加参数
  2. var queryParams = $('#cxdm').datagrid('options').queryParams;
  3. queryParams.who = who.value;
  4. queryParams.type = type.value;
  5. queryParams.searchtype = searchtype.value;
  6. queryParams.keyword = keyword.value;
  7. //重新加载datagrid的数据
  8. $("#cxdm").datagrid('reload');

或者直接添加在url中

  1. $('#repeatpspolal').datagrid({
  2. title:'重复的未初分提案',
  3. loadMsg:"数据加载中,请稍后……",
  4. region:'north',
  5. url:"getRepeatPs.action?documentnumber="+documentnumber+"&simDegree="+simDegree,
  6. 。。。。。。

Action层

  1. //当前页码
  2. private int page;
  3. .........
  4. //征询意见结果集
  5. private List<Object> rows;
  6. ...........
  7. @SuppressWarnings("unchecked")
  8. public String getPsNewConsultList() throws GlobalException {
  9. //获取每页显示的行数
  10. int pageRows=10;
  11. if(null!=request.getParameter("rows")) {
  12. pageRows=Integer.parseInt(request.getParameter("rows").toString());
  13. }
  14. ...........
  15. //获取结果集
  16. this.setRows(proposalService.getPsNewConsultList(consulter,consultee,type,psId,psContent,pageRows*(page-1)+1,pageRows*page));
  17. //获取总记录数
  18. this.setTotal(100);
  19. ...............
  20. }

其中的page由datagrid传入,当用户在datagrid左下角选择每页显示的行数时,datagrid会将该值已参数形式附加到url后面传入action中,名字就叫page,还要将结果总行数total传给datagrid,用于分页

不知道是datagrid配置有误还是datagrid的bug,datagrid的结果集和每页显示的行数都叫rows,重名了

解决办法如上,结果集还是叫rows,但是List的类型改为Object而不能用实体的类型,每页显示的行数通过request获取

action配置时,要继承json-default,json-default继承自struts-default,还要配置输出结果类型为json

  1. <action name="getPsNewConsultList" class="proposalConsultAction" method="getPsNewConsultList">
  2. <result name="success" type="json">
  3. <param name="includeProperties">
  4. ^rows\[\d+\]\.\w+,total
  5. </param>
  6. <param name="noCache">true</param>
  7. <param name="ignoreHierarchy">false</param>
  8. </result>
  9. </action>

service层

  1. @SuppressWarnings("unchecked")
  2. public List getPsNewConsultList(String consulter,String consultee,String type,String psId,String psContent,int pageRows,int page) throws Exception {
  3. return proposalDAO.getPsNewConsultList(consulter,consultee,type,psId,psContent,pageRows,page);
  4. }

dao层只需要将ResultSet中的数据循环加入实体属性,然后将实体实例加入List即可,形式如下:

    1. List<Person> list=new ArrayList<Person>();
    2. Person person=null;
    3. while(rs.next())
    4. {
    5. person=new Person();
    6. person.setId(i);
    7. person.setName("名字"+i);
    8. list.add(person);
    9. }
    10. .........
    11. return list;

easyui datagrid使用(好)的更多相关文章

  1. JQuery easyUI DataGrid 创建复杂列表头(译)

    » Create column groups in DataGrid The easyui DataGrid has ability to group columns, as the followin ...

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

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

  3. 控制EasyUI DataGrid高度

    这次要说的是控制EasyUI的高度,平时我公司的项目,用EasyUI较多,然后datagrid这个组件是用的非常多的.平时我们都是固定高度,常见代码如下:             <table  ...

  4. EasyUI datagrid 日期时间格式化

    EasyUI datagrid中显示日期时间时,会显示为以下不太直观的数值: 添加以下JavaScript脚本,然后在field中添加 formatter: DateTimeFormatter 即可. ...

  5. easyui datagrid中 多表头方法总结

    easyui datagrid中怎么设置表头成多行显示呢?其实很简单,就是给datagrid的columns属性设置成多个数组就行了.下面直接看例子吧,这是一个两行表头的,按照此方法,还可以设置三行表 ...

  6. jquery easyui datagrid翻页后再查询始终从第一页开始

    在查询之前将datagrid的属性pageNumber重新设置为1 var opts = grid.datagrid('options'); opts.pageNumber = 1; easyui d ...

  7. 让easyui datagrid支持bootstrap的tooltip

    让easyui datagrid支持bootstrap的tooltip 发表于 下午 1:53 by ylpro.net & 分类 Java. Easyui在1.3.3版本之前是不支持tool ...

  8. easyui datagrid 没数据时显示滚动条的解决方法

    今天解决了一个bug,因为datagrid有多列,可是当没有数据的时候,后面的列无法通过滚动条拉动来显示,比较麻烦,而需求要求没有数据也要拉动滚动条查看后面有什么列,一开始在网上找了一些资料,发现都不 ...

  9. VS2012 easyui datagrid url访问之坑

    VS2012 easyui datagrid url访问之坑 url属性放的是地址的话 返回的json格式必须有 total 和 rows,如下: {"total":2," ...

  10. EasyUI Datagrid Datetime(EasyUI DataGrid 时间格式化)

    EasyUI DataGrid 时间格式化 方法一: var Common = { //EasyUI用DataGrid用日期格式化 TimeFormatter: function (value, re ...

随机推荐

  1. EF 学习笔记

    1.EFcodeFirst如何使用存储过程!public string GetCoupon(int type) { using (var db=new ProbabilityContext()) { ...

  2. C++实现python标准库中的Counter

    看python standard library by exmple里面提到一个Counter容器,它像muliset一样,能够维持一个集合,并在常量时间插入元素.查询某个元素的个数,而且还提供了一个 ...

  3. paramiko堡垒机、线程及锁

    1.使用paramiko实现ssh连接和scp拷贝 开发堡垒机之前,先来学习Python的paramiko模块,该模块机遇SSH用于连接远程服务器并执行相关操作 1.1 SSHClient 用于连接远 ...

  4. NSAttributedString的用法

    标签: 以前看到这种字号和颜色不一样的字符串,想出个讨巧的办法就是“¥150”一个UILable,“元/位”一个UILable.今天翻看以前的工程,command点进UITextField中看到[at ...

  5. 数据结构 《5》----二叉搜索树 ( Binary Search Tree )

    二叉树的一个重要应用就是查找. 二叉搜索树 满足如下的性质: 左子树的关键字 < 节点的关键字 < 右子树的关键字 1. Find(x) 有了上述的性质后,我们就可以像二分查找那样查找给定 ...

  6. iOS开发:bitcode介绍和使用cocoapods出现“target overrides the `OTHER_LDFLAGS`……”的解决方案

    在开发中,不免需要引入第三方库,但是因为库的问题,会发生很多错误.如: 1.因为一些第三方库不包含bitcode就会报错: 一次使用xcode7.1时,发现编译失败,报错信息: umeng messa ...

  7. Oracle常用SQL语句

    --2.查看表结构 desc wx_monitor_excption; --3.从表中查询数据 select * from wx_monitor_excption; --7.双引号保持原来的格式 se ...

  8. HDU 5067

    http://acm.hdu.edu.cn/showproblem.php?pid=5067 规定起点和终点的tsp问题,解法依然是状态压缩dp,在初始化和计算答案的时候略做改动即可 #include ...

  9. java中byte数据转换为c#的byte数据

    最近在做下载方面的开发.有一个需求,就是读取要下载的文件中的一些数据,比如要读取这个文件包含的用户信息,但是怎么读都不对.后来搞了很久才发现,服务器上的文件里的用户信息,用C#写的存储方法来存储的,而 ...

  10. strong和b

    strong和b标签都是很久以前遗留下来的标签,b标签用来加粗字体,strong用来强调,通常浏览器会把强调的语句加粗,所以二者效果比较近似.语义化愈发受重视以后,b标签退出大众视野,strong依然 ...