`
hm4123660
  • 浏览: 282556 次
  • 性别: Icon_minigender_1
  • 来自: 广州
博客专栏
Dea4ce76-f328-3ab2-b24a-fb268e1eeb75
数据结构
浏览量:70031
社区版块
存档分类
最新评论

Extjs4 grid数据显示和分页

阅读更多

 

前台extjs的js代码:

Ext.onReady(function () {

    Ext.create('Ext.container.Viewport', {

        layout: 'border',

        width:500,

        items: [

           

         {

            region: 'center',

            

            xtype: 'tabpanel', 

            items: [

            

            Qgrid

            ]

        

        }]

    });

 

   

});

 

   var pageSize = 4;//每页多少数据

 

   var gridstore = Ext.create('Ext.data.Store', {

   storeId:'QsimpsonsStore',

       pageSize: pageSize,//分页。。。

       fields: [

            { name: 'ID', type: 'int' },

            { name: 'NAME', type: 'string' },

            { name: 'IDENT', type: 'string' },

            { name: 'qualify', type: 'bool' },

            { name: 'exam_date', type: 'string' },

            { name: 'nowtime', type: 'string' }

            

           ],//定义字段

 

        proxy:{  

                type: 'ajax',  

                url:'studentgridAction.action', //请求的数据的url  -------下面有后台代码

                 reader:{  

                          type:'json',  

                          root:'students', //对应action中需要被现实的字段  

                          totalProperty: 'total'  //数据总数

                         }  

               },

        sorters:[{property:"ID",direction:"ASC"}],//按qq倒序

        autoLoad:{params:{start:0,limit:pageSize}}//自动加载,每次加载一页

  

   })

   

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

   function renderSex(value, cellmeta, record, rowIndex, columnIndex, store)//value当前单元格的值,record是这行的所有数据,store表格里所有的数据

   {

        if(value==false)

        {

            return "<span style='color:red;font-weight:bold;'>无</span>";

        }   

        else

        {

            //return record.get('qualify');

            return "<span style='color:green;font-weight:bold;'>有</span>";

        }         

   }

   

 

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

var Qgrid=Ext.create("Ext.grid.Panel",{

       title:'学生列表',

       frame: true,

       rowLines: false,

       columns: [//配置表格列

    //序号

   Ext.create("Ext.grid.RowNumberer",{

   width: 40,

   text:'序号'

   

   }),

   {header: "学生账号", width: 200, dataIndex: 'ID', sortable: false},//renderer:renderSex可自定义显示

                {header: "学生姓名", width: 200, dataIndex: 'NAME', sortable: false},

                /*{header: "考试资格", width: 200, dataIndex: 'qualify', xtype: 'booleancolumn', sortable: false,

                trueText: "<span style='color:green;font-weight:bold;'>有</span>",  

                    falseText: "<span style='color:red;font-weight:bold;'>无</span>" //一样效果

                }*/

                {header: "考试资格", width: 200, dataIndex: 'qualify', sortable: false,renderer:renderSex}//渲染函数

            ],

 

store:gridstore,//指定grid的数据源

//多选框

 

selType:'checkboxmodel',

multiSelect:true,

//分页控件

             dockedItems: [

                {

                    xtype: 'pagingtoolbar',

                    pageSize : pageSize,//分页....

                    store:gridstore, 

                    dock: 'bottom', //分页 位置

                    emptyMsg: '没有数据',

                    displayInfo: true,

                    displayMsg: '当前显示{0}-{1}条记录 / 共{2}条记录 ',

                    beforePageText: '第',

                    afterPageText: '页/共{0}页'

                }],

   tbar:[

     

'-','-',{

   icon: 'images/add.png',

   text:"添加资格",

   type:"submit",

   handler:function(buttonObj){

 

   var grid1=buttonObj.ownerCt.ownerCt;

   var data=grid1.getSelectionModel().getSelection();

   if(data.length==0){

   Ext.example.msg('<font color="#ff9900">警告</font>',"请先选择学生!");

   }

   else{

   //得到ID的数据

   var st=grid1.getStore();

   var ids=[];

   var name=[];

   var exam_data=[];

   var nowtime=[];

   var k=1;

   Ext.Array.each(data,function(record){

   if(k==1)

   {

   exam_data.push(record.get('exam_date'));

   nowtime.push(record.get('nowtime'));

   }

   k++;

   });

   if(exam_data>nowtime)

   {

   Ext.Array.each(data,function(record){

   if(record.get('qualify')==true)

   {

   //Ext.example.msg('<font color="#0000ff">温馨提示</font>',""+record.get('NAME')+"重新被授予资格");

       name.push(record.get('NAME'));

   }

   else

   {

           ids.push(record.get('ID'));

   }

   });

   /*if(name.length>0)

   {

   Ext.MessageBox.alert("提示框","<br>"+name+"<br><br>已经具有考试资格,无需再授予资格<br>"); 

   

   }*/

   

   if(ids.length>0)

   {

   Ext.Ajax.request({

   

   url:'qualificationMan.action',

   params:{ids:ids.join(",")},//传值到后台,单传2个值到后台时以,分开

   method:'POST',

   timeout:2000,

   success:function(response,opts){

   

   Ext.example.msg('<font color="#0000ff">温馨提示</font>','资格授予成功!');

   Qgrid.store.reload();//重新加载数据

   }

   })

   }

   }

   else

   {

   Ext.example.msg('<font color="#ff9900">警告</font>','考试已经开始或已经结束,不能再授权!');

   }

   

   

   }

       }

},'-','-',

{

   icon: 'images/delete.png',

   text:"取消资格",

   type:"submit",

   handler:function(buttonObj){

 

   var grid1=buttonObj.ownerCt.ownerCt;

   var data=grid1.getSelectionModel().getSelection();

   if(data.length==0){

   Ext.example.msg('<font color="#ff9900">警告</font>','请先选择学生!');

   }

   else

   {

   //得到ID的数据

   var st=grid1.getStore();

   var ids=[];

   var name=[];

   var exam_data=[];

   var nowtime=[];

   var k=1;

   Ext.Array.each(data,function(record){

   if(k==1)

   {

   exam_data.push(record.get('exam_date'));

   nowtime.push(record.get('nowtime'));

   }

   k++;

   });

   if(exam_data>nowtime)

   {

   Ext.Array.each(data,function(record){

       

if(record.get('qualify')==false)

{

name.push(record.get('NAME'));

}

else

{

   ids.push(record.get('ID'));

}

 

});

/*if(name.length>0)

{

  Ext.MessageBox.alert("提示框","<br>"+name+"<br><br>不具有考试资格,无需取消资格<br>"); 

 

}*/

 

if(ids.length>0)

{

Ext.Ajax.request({

 

url:'Cancelqualification.action',

params:{ids:ids.join(",")},//传值到后台,单传2个值到后台时以,分开

method:'POST',

timeout:2000,

success:function(response,opts){

 

Ext.example.msg('<font color="#0000ff">温馨提示</font>','资格取消成功!');

Qgrid.store.reload();//重新加载数据

}

})

}

   }

   else

   {

   Ext.example.msg('<font color="#ff9900">警告</font>','考试已经开始或已经结束,不能取消授权!');

   }

   

   

   }

       }

}

  

]

 

});

 

structs.xml

 

  <action name = "studentgridAction"  class ="teacher_qualification.Action" method="getstudent">

         <result name="students" type="json"></result>

         </action>

 

后台java代码实现函数:

       public List<Model>students;//和 grid的store的root:'students',对应

 

        public Integer total;//分页。。。数据总数

 

public Integer start;//分页。。。每页开始数据

 

public Integer limit;//分页。。。每一页数据

//省略get和set的方法,一定要get和set,不然前台获取不到值

 

         public String getstudent()

{

               // HttpServletRequest request = ServletActionContext.getRequest();set seesion的值

        //request.getSession().setAttribute("testid", testid);

HttpServletRequest request = ServletActionContext.getRequest();

String oppo=(String) request.getSession().getAttribute("testid");//获取考试的id。seesion方法

int testid=Integer.parseInt(oppo);//试卷ID

users=new ArrayList<Student>();

users=remote().Partstudents("学生");//得到所有學生

students=new ArrayList<Model>();

//分页

total=users.size();

int end=start+limit;

if(end>users.size())//不能总数

{

end=users.size();

}

for(int i=start;i<end;i++)//只加载当前页面数据

{

Model ok=new Model();

ok.setID(users.get(i).getID());

ok.setNAME(users.get(i).getNAME());

ok.setIDENT(users.get(i).getIDENT());

List <qualification>fuck=new ArrayList<qualification>();

fuck=remote1().getqualificationParts(users.get(i).getID(), testid);

if(fuck.size()>0)

{

ok.setQualify("true");

}

else

{

ok.setQualify("false");

}

ok.setExam_date(exam_data);

ok.setNowtime(nowtime);

students.add(ok);

}

System.out.println("start:"+start+" end:"+end);

return "students";

 

}

 

 

分享到:
评论

相关推荐

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

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

    ExtJS 使用grid显示数据

    它提供了大量的组件和功能,包括网格(Grid)这种常用的数据显示控件。这篇博客文章 "ExtJS 使用grid显示数据" 可能详细阐述了如何利用ExtJS的Grid面板来展示和操作数据。 在ExtJS中,Grid Panel是一种数据驱动的...

    Extjs4 grid使用例子

    在这个例子中,Model定义了数据模型,View负责呈现数据,而Controller作为中间人,处理用户交互和数据更新。 2. **Grid组件**: Grid组件是ExtJS的核心组件之一,用于展示结构化数据。它提供了诸如分页、排序、...

    Extjs grid分页1

    综上所述,ExtJS Grid的分页功能提供了一种高效的方式来处理和展示大量数据。通过合理的配置和使用,可以创建出响应快速、用户体验良好的数据网格应用。理解并熟练掌握这些概念和技术,对于开发高效、用户友好的Web...

    php+extjs+grid实时显示更新数据

    Grid组件是EXTJS的核心部分,它可以显示大量表格数据,支持行操作、列自定义和数据绑定。在实时数据展示中,我们需要利用EXTJS的Store和AjaxProxy来实现数据的实时更新。Store是EXTJS用来存储数据的容器,而Ajax...

    extjs4打印grid插件

    总的来说,"extjs4打印grid插件"是ExtJS4开发中非常实用的一个工具,它为Grid Panel提供了方便的打印功能,极大地丰富了用户体验,特别是在数据报告和数据分析场景中。通过深入理解和使用这个插件,开发者可以更好地...

    Extjs4下拉菜单ComboBox中用Grid显示通用控件

    - `GridPanel` 是EXTJS中用于展示表格数据的组件,它可以灵活地处理大量数据,并提供排序、分页、过滤等功能。 - 在 `GridComboBox` 中,`GridPanel` 作为下拉菜单的内容,使用户能以表格形式查看和选择数据。 3....

    Extjs4 Grid分页与自动刷新

    ### Extjs4 Grid分页与自动刷新 #### 一、Extjs4 Grid 分页功能实现 在使用Extjs4进行Web应用开发时,Grid控件是常用的数据展示组件之一。对于大数据量的情况,通常需要使用分页来提高用户体验。下面详细介绍如何...

    EXTJS4 表格GRID示例

    EXTJS4 GRID 表格 分页 编辑 添加判断 颜色判断 分组 等示例

    extjs 分页

    2. Grid:EXTJS Grid是数据展示的主要组件,它与Store绑定后,可以自动展示Store中的数据,并支持分页操作,如切换页码、显示每页记录数等。 3. Paging Toolbar:分页条是EXTJS提供的一种UI组件,它包含页码按钮、...

    extjs4Grid和jqGrid对比.doc

    - **灵活性**: 虽然 jqGrid 提供了较为丰富的配置选项,但在数据源的选择和数据处理策略上相比 ExtJs 4 Grid 可能略显单一。 **结论**: 总体而言,ExtJs 4 Grid 在数据展示方面提供了更高的灵活性和更低的耦合度,...

    Extjs grid分页多选记忆功能

    很多同事在用extjs grid做分页的时候,往往会想用grid的多选功能来实现导出Excel之类的功能(也就是所谓的多选记忆功能),但在选选择下一页的时候 上一页选中的已经清除 这是因为做分页的时候又向服务器请求了分页...

    ssh+extjs全注解的上传、分页、验证码的demo

    这个“ssh+extjs全注解的上传、分页、验证码的demo”提供了如何在SSH后端框架基础上,结合EXTJS实现文件上传、分页显示数据以及验证码功能的示例。 首先,Struts2作为MVC(模型-视图-控制器)框架,负责处理HTTP...

    Extjs动态GRID

    此外,`reconfigure()`方法可以用来完全重新配置Grid的列定义和数据源。 2. 动态列隐藏与显示: EXTJS Grid提供了`hide()`和`show()`方法,允许用户根据需要隐藏或显示特定列。这通常与用户的交互事件(如点击列头...

    extjs 简单分页例子

    EXTJS通过其Grid组件支持分页,Grid组件是一个可配置的表格视图,能够显示大量数据并进行排序、筛选和分页操作。 首先,我们需要创建一个EXTJS Grid组件。在JS文件中,定义Grid的基本配置,包括列模型(column ...

    使用extjs4+servlet对extjs中grid数据进行填并实现增删改查等功能!

    本文将详细介绍如何利用ExtJS4和Servlet来实现Grid组件的数据填充,并集成增删改查(CRUD)功能。 首先,ExtJS4是一个强大的JavaScript框架,它提供了丰富的组件库,包括Grid组件,用于展示和操作表格数据。Grid...

    ExtJS 实现动态处理加载 grid 实现了CRUD还有分页功能

    在本示例中,我们将深入探讨如何使用ExtJS实现动态加载grid,同时实现CRUD(创建、读取、更新、删除)操作和分页功能。 首先,让我们了解什么是Grid。在ExtJS中,Grid是一种数据网格组件,用于展示大量结构化数据。...

    EXTJS grid导出EXCEL文件

    2. **数据导出**:在EXTJS中,数据导出功能通常涉及到将Grid中的数据显示在其他格式,如CSV、PDF或Excel中。这通常是通过编写自定义插件或者扩展Grid的功能来实现的。 3. **EXTJS 3.2.0**:这是EXTJS的一个特定版本...

    ExtJs动态grid的生成

    本文将深入探讨如何在ExtJS中动态生成Grid,这是一个非常实用的功能,可以适应不断变化的数据需求和用户交互。我们首先从标题"ExtJs动态grid的生成"开始,了解动态生成Grid的基本概念和实现方法。 动态生成Grid意味...

    ExtJs6.5Grid列表导出(包含样式)

    以上是实现ExtJs 6.5 Grid列表导出的基本流程,需要注意的是,这个过程可能需要根据具体的应用场景进行调整,例如处理复杂的数据格式、自定义渲染器、分页等。在实际开发中,可以封装成一个通用的Grid导出组件,以供...

Global site tag (gtag.js) - Google Analytics