`

EXT中grid分页实现的完整例子---从前台到后台

阅读更多
// -------------------- 定义grid--------------------------

var page_size = 10; //定义页面记录最大显示数量
var MyRecord = Ext.data.Record.create([

{name : 'ygId'},

{ name : 'workDate'},

{name : 'workEdDate'},

{name : 'wtBgtime'},

{name : 'wtEdtime' },

{name : 'wtPotime'},

]);

var store = new Ext.data.Store({

proxy : new Ext.data.HttpProxy({
     url : 'empAbsentInfoManage.action?method=getlist' //从后台获取数据
    }),

   reader : new Ext.data.JsonReader({
    root : "root",
    totalProperty : "total"

    }, MyRecord)

});
store.load({
   params : {//这两个参数是分页的关键,当你点击 下一页 时,这里的值会传到后台,也就是会重新运行:store.load
    start : 0,  
    limit : page_size
   }
});

var sm = new Ext.grid.CheckboxSelectionModel();

var fuuzy = new Ext.form.TextField({
   id : "fuzzy",
   name : "fuzzy"
});

var grid = new Ext.grid.GridPanel({
   region : "center",
   // region:"east",
 
   store : store,
   columns : [// 设计页面显示的表格信息,字段与Ext.data.Record.create匹配
   sm,
   {
    id : 'id',
    header : "人员ID",
    width : 75,
    sortable : true,
    dataIndex : 'ygId'
   }, {
    header : "开始日期",
    width : 75,
    sortable : true,
    dataIndex : 'workDate'
   }, {
    header : "开始时间",
    width : 75,
    sortable : true,
    dataIndex : 'wtBgtime'
   },{
    header : "结束日期",
    width : 75,
    sortable : true,
    dataIndex : 'workEdDate'
   }, {
    header : "结束时间",
    width : 75,
    sortable : true,
    dataIndex : 'wtEdtime'
   }, {
    header : "总时间",
    width : 75,
    sortable : true,
    dataIndex : 'wtPotime'
   }],
   sm:sm,
   stripeRows : true,
   autoSizeColumns : true,
   viewConfig : {
    forceFit : true
   },

   autoExpandColumn : 'id',
   title : '员工请假信息管理',

tbar : [fuuzy, {
    text : "查询",
    handler : queryRecord
   }, {
    text : "增加",
    iconCls : 'add',
    handler : addRecord

   }, {
    text : "修改",
    iconCls : 'edit',
    handler : updateRecord
   }, {
    text : "删除",
    iconCls : 'delete',
    handler : deleteRecord
   }],
   // 分页
   bbar : new Ext.PagingToolbar({
    pageSize : page_size,
    store : store,
    displayInfo : true
   })
});

//--------------------------------------------------------------------

//====== 再来看看后台实现 =====================

//获得员工基本信息列表(根据工号模糊查询)
public void GetEmpWorkList() throws Exception {


   int start = Integer.parseInt(request.getParameter("start"));
 
   int limit = Integer.parseInt(request.getParameter("limit")); 
 
   int end = start + limit;
 
   String fuzzy="";
 
   String sql=
   "select * from\n"+
    "   (\n"+
    "   select YG_ID, to_char(lt_bgtime,'YYYY-MM-DD HH24:MI:SS'),to_char(lt_EDTIME,'YYYY-MM-DD HH24:MI:SS'), LT_POTIME ,\n"+
    "   (row_number() over(ORDER BY YG_ID)) rb\n"+
    "   from ltb \n "+
    "   ) tt\n" +
    "   where tt.rb between "+ start+" and "+end;    // 关键就在这里,前台的两个参数是用到SQL分页语句中,从而实现了分页查询与前台的分页显示的结合
   System.out.print("==============默认SQL ===============>>>>\n"+sql);
 
 
 
   Object obj=request.getParameter("fuzzy");
   if(obj!=null)
   {
    fuzzy=obj.toString();
    //sql= "select YG_ID, to_char(Lt_bgtime,'YYYY-MM-DD HH24:MI:SS'),to_char(Lt_EDTIME,'YYYY-MM-DD HH24:MI:SS'), LT_POTIME from Ltb where YG_ID like '"+fuzzy+"%'";
    sql = "select * from\n"+
     "   (\n"+
     "   select YG_ID, to_char(lt_bgtime,'YYYY-MM-DD HH24:MI:SS'),to_char(lt_EDTIME,'YYYY-MM-DD HH24:MI:SS'), LT_POTIME ,\n"+
     "   (row_number() over(ORDER BY YG_ID)) rb\n"+
     "   from ltb where YG_ID like '"+fuzzy+"%'\n "+
     "   ) tt\n" +
     "   where tt.rb between "+ start+" and "+end; // 关键就在这里,前台的两个参数是用到SQL分页语句中,从而实现了分页查询与前台的分页显示的结合

    System.out.print("===============分页SQL ===============>>>>\n"+sql);
 
   }


   NativeSQLHelperRemote bll = (NativeSQLHelperRemote) Ejb3Factory
   .getInstance().getFacadeRemote("NativeSQLHelper");
 
   List list=bll.queryByNativeSQL(sql); //执行一下SQL语句,这个类是项目的EJB中封装好的,下同
 
   Iterator it=list.iterator();
     List blocklist = new ArrayList();
  
  
   while(it.hasNext())
   {  
  
    EmpAbsentInfo ewi =new EmpAbsentInfo();
    Object[] o =(Object[]) it.next();
 
    if(!o[0].toString().equals(""))
    {
   
     ewi.setYgId(o[0].toString());
   
    }
    if(o[1]!=null)
    {
   
     int index = new String(o[1].toString()).indexOf(" ");
   
     ewi.setWorkDate(o[1].toString().substring(0,index));
   
     ewi.setWtBgtime(o[1].toString().substring(index));
  
    }
    if(o[2]!=null)
    {
   
     int index = new String(o[2].toString()).indexOf(" ");
   
     ewi.setWorkEdDate(o[2].toString().substring(0,index));
 
     ewi.setWtEdtime(o[2].toString().substring(index));
   

  
    }
    if(o[3]!=null)
    {
     ewi.setWtPotime(o[3].toString());
    
    } 
    blocklist.add(ewi);
  
   }
 
String str = "{total :"+GetInfoCount(fuzzy)+", root:" + JSONUtil.serialize(blocklist) + "}";

//total 给出了记录的总数量
System.out.print(str);
write(str);
 
}
//获取信息记录总数
public int GetInfoCount(String fuzzy) throws Exception{
    String sql=
     "select count(*) from ltb " +
     "where YG_ID like '%"+fuzzy+"%'";
    NativeSQLHelperRemote bll = (NativeSQLHelperRemote) Ejb3Factory
    .getInstance().getFacadeRemote("NativeSQLHelper");
    Object count= bll.getSingal(sql);
    Integer i=Integer.parseInt(count.toString());
    return i;
}

//----------------------------------------------------------------------------------------------------------

总结:前台没有什么特别的地方,后台主要是要用到分页查询语句 :row_number() over(),最后就是得到该查询的记录的总数量,返回给前台。EXT中grid分页实现的完整例子---从前台到后台
4
1
分享到:
评论

相关推荐

    ExtJS笔记---Grid实现后台分页

    这篇“ExtJS笔记——Grid实现后台分页”探讨了如何在ExtJS的Grid组件中实现高效的后台分页功能。 后台分页是一种常见的数据处理策略,特别是在大数据量的情况下,它将数据分批加载,避免一次性加载所有记录导致的...

    ext grid json分页显示

    在EXT Grid中,DWR提供了对XMLHttpRequest的封装,使得开发者无需直接操作这个对象,而是通过更友好的接口进行操作。 总结来说,"ext grid json分页显示"是通过EXT.js的Grid组件结合DWR的Ajax能力,实现前端数据的...

    ext+jsp分页---好不好,大家说了算。下载不扣分,回帖加1分,欢迎下载,童叟无欺。

    ext+jsp分页---好不好,大家说了算。下载不扣分,回帖加1分,欢迎下载,童叟无欺。ext+jsp分页---好不好,大家说了算。下载不扣分,回帖加1分,欢迎下载,童叟无欺。ext+jsp分页---好不好,大家说了算。下载不扣分,...

    简单的小例子Ext+servlet 分页

    总结来说,本示例通过Ext JS的Grid组件实现了前端的分页展示,同时利用Servlet在后台处理数据分页逻辑,两者配合实现了完整的前后端分页功能。这种分页方式在实际项目中非常常见,有效提高了用户体验,减轻了服务器...

    Ext grid 分页实例源码

    Ext grid PagingToolbar分页实例源码Ext grid PagingToolbar分页实例源码Ext grid PagingToolbar分页实例源码Ext grid PagingToolbar分页实例源码

    ext-2.0 ext-2.0 ext-2.0 ext-2.0 ext-2.0

    ext-2.0ext-2.0ext-2.0ext-2.0ext-2.0ext-2.0ext-2.0ext-2.0ext-2.0ext-2.0ext-2.0ext-2.0ext-2.0ext-2.0ext-2.0ext-2.0ext-2.0ext-2.0ext-2.0ext-2.0ext-2.0ext-2.0ext-2.0ext-2.0

    ext2.0 grid 分页实例(php)

    - 在Grid中,可以监听`load`事件来处理数据加载完成后的一些逻辑,例如初始化或更新分页信息。 - Paging Toolbar的`beforechange`和`change`事件可用于在用户切换页码前后的操作,比如禁用按钮或显示加载动画。 5...

    ext-ms-win-gdi-desktop-l1-1-0.dll

    ext-ms-win-gdi-desktop-l1-1-0.dll 用于解决这个dll文件丢失问题,下载后将此文件放置在相关文件根目录下,即可解决丢失问题

    Ext grid中渲染进度条,超帅 源码-----下载不扣分,回帖加1分,欢迎下载,童叟无欺。

    Ext grid中渲染进度条,超帅 源码-----下载不扣分,回帖加1分,欢迎下载,童叟无欺。Ext grid中渲染进度条,超帅 源码-----下载不扣分,回帖加1分,欢迎下载,童叟无欺。Ext grid中渲染进度条,超帅 源码-----下载不扣分...

    Ext3-Js-Ajax框架-分页标签-自动排序-文件上传

    Ext3-Js-Ajax框架-分页标签-自动排序-文件上传Ext-Js-Ajax框架-分页标签-自动排序-文件上传Ext-Js-Ajax框架-分页标签-自动排序-文件上传Ext-Js-Ajax框架-分页标签-自动排序-文件上传Ext-Js-Ajax框架-分页标签-自动...

    EXT 表格 本地分页的例子

    EXT 表格 本地分页的例子 EXT 表格 本地分页的例子

    Ext扩展控件-------可以通过下拉列表框选择每页的分页条数

    在EXT Grid中实现这种功能,主要涉及到以下几个关键点: 1. **扩展控件(ux)**:EXT框架允许开发者创建自定义组件(ux components),这些组件可以被其他EXT应用复用。在本例中,“ux.Andrie.pPageSize”可能是一...

    ext grid 合计行

    结果在extjs的老家找到一个前辈写的代码,可以在grid上面加上合计, <br>但是却只能合计grid里面的数据,但是我们平常一般是只显示20行或者30行,这样的合计就没有什么意义,我们的合计数据是单独从数据库里面...

    最新的GT-Grid vs EXT-Grid例子(超级经典)

    在例子中,我们可以看到三种不同场景的应用,这些例子可能展示了GT-Grid和EXT-Grid在处理基础数据展示、高级功能集成以及自定义程度上的差异。例如,可能有一个例子专门对比两者的数据加载速度,另一个可能比较各自...

    Ext4.0分页的Grid例子

    后台使用的是struts2生成Ext所需要的json,把webroot下的ext4下面加入ext的开发包,然后再把create.sql中的脚本在数据库中执行,代码就可以跑起来了,我用的是mysql数据库

    Ext.ux.touch.grid-master.rar

    EXTJS Touch 提供了一套完整的UI组件,包括表格、按钮、滑块、选择器等,而Ext.ux.touch.grid-master则是EXTJS Touch中的一个增强型表格组件。这个扩展提供了更丰富的功能,使得在移动设备上处理和展示大量结构化...

    Ext实现分页查询,前台

    本示例主要介绍了如何使用Ext.js这个JavaScript框架来实现前端的分页查询功能。 首先,创建一个名为`resource`的数据存储(Store),它负责从服务器获取数据。这里的`Store`对象定义了字段(fields)、数据源URL...

    chinese_wwm_ext_L-12_H-768_A-12.zip

    BERT的训练目标是预测句子中的随机掩码词,实现双向的语境理解。 2. **L-12**:这里的“L-12”表示模型包含12个Transformer编码器层。每一层由多头自注意力机制和前馈神经网络组成,这些层逐层处理输入信息,逐渐...

    ext grid带分页(服务器端)

    在本文中,我们将深入探讨如何在EXT Grid中实现服务器端分页,这在处理大量数据时尤为关键。EXT Grid是一款强大的JavaScript组件,用于构建交互式的数据视图,而服务器端分页则是优化性能、提高用户体验的重要策略。...

    ext 2 简单例子(内附ext-all.css, ext-base.js, ext-all.js三个必不可少的文件)

    ext 是 ExtJs 的简称,是一个强大的js 类库。本资源主要包括三个大的文件ext-all.css,ext-base.js,ext-al.js。在引用ext 类库的时候,这三个文件必不可少。另外我还提供了ext2的一个简单例子,以便大家学习交流。

Global site tag (gtag.js) - Google Analytics