JQuery EasyUI DataGrid

转:http://www.cnblogs.com/archie2010/archive/2011/01/17/1937327.html,有增加

 

最近,在项目中用到JQuery EasyUI DataGrid,虽然它封装了表格的实现,为我们提供很多便利,但是在使用的过程中,还是会遇到一些困难和问题。目前,问题都已经解决,特分享我使用 DataGrid开发的经验。(PS:我用的是JSP和J2EE框架开发)。

1.数据的提取和显示。

DataGrid是通过url属性获取数据的。例如:url:'ListInfo.action' ,这样通过调用Action中的方法获取数据。返回的是JSON字串。注意,JSON字串必须按照DataGrid定义的数据格式进行拼装。这种数据格式,可以参考我前面的文章中的附件。特别强调的是,JSON字串中的total域的值是数据的条数,用于数据的分页。

2.数据的分页。

数据的分页分为前台分页和后台分页,前台分页,DataGrid已经封装好了。 DataGrid定义了两个参数: rows(每页的条数),page(当前的页数),这两个参数分别对应属性pageSize,pageNumber。用户可以在 pageSize,pageNumber属性中设置,也可以不设置,这样就取默认值。我们只需在Action中定义两个变量,private int rows; private int page; 接着通过SQL语句获取需要取的值。分页的SQL语句(Oracle)如下:

 
  
  

1

. 

select

 

*

 

from

(   
   

2

. 

select

 rownum r,  field1,field2 

from

 table_name 

where

 rownum 

<=

 page

*

 rows( 
   

3

. )    
   

4

. 

where

 r 

>

 (page

-

1

) 

*

 rows  

这样提取的数据的条数赋值给total域,拼装在JSON字串中返回,就可以实现分页了。当然,pagination:true, 是当然需要的。

 

在controller层获取每页的行数和当前多少页,用如下方法:

pageSize = Integer.parseInt(request.getParameter("rows") .toString());

pageNo = Integer.parseInt(request.getParameter("page") .toString());

 

 

 

3.数据的操作。

数据的操作大致可分为:查看,删除。对于查看,我们可以通过onClickRow或onDblClickRow事件实现。如:

复制代码
 
  
$(

function

(){
   $(

'

#test

'

).datagrid({
    title:

'

数据列表

'

,
    width:

900

,
    height:

500

,
        .......(省略的属性)
    onDblClickRow: 

function

() {
    

var

 selected 

=

 $(

'

#test

'

).datagrid(

'

getSelected

'

);
    

if

 (selected){
      window.open(

"

DataView.action?Id=

"

+

selected.ID);
   }}  

复制代码

这样双击就可以查看了。

关于删除,可以通过点击删除按钮,调用删除方法来实现。删除按钮可以在拼装JSON字串的时候,赋值给OPERATION域,这样设置{field:'OPERATION',title:'操作',width:120},就可以在页面上显示删除按钮了。删除的实现,如下:

复制代码
代码
 
   
function

 DelAff(){
   $.messager.confirm(

'

确认

'

,

'

是否真的删除?

'

,

function

(r){
   

if

 (r){
   

var

 selected 

=

 $(

'

#test

'

).datagrid(

'

getSelected

'

);
   

if

 (selected){
      

var

 index 

=

 $(

'

#test

'

).datagrid(

'

getRowIndex

'

, selected);
      $(

'

#test

'

).datagrid(

'

deleteRow

'

, index);
    DeleteSubmit(selected);
   }
   }
   });
  }
  

function

 DeleteSubmit(selected)
  {
       

var

 url

=

"

DataDelete.action?Id=

"

+

selected.ID;
       $.post(
       url     
     );
  }  

复制代码

这样页面的删除和数据库中的删除都实现了。

 

 

 

另参见:http://www.cnblogs.com/zgqys1980/archive/2011/01/04/1925775.html

http://www.jeasyui.com/documentation/datagrid.php

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值