`

GridPanel分页

阅读更多

Ext.onReady(function(){
 var sm = new Ext.grid.CheckboxSelectionModel();
//显示选择框
 var cm = new Ext.grid.ColumnModel([
  new Ext.grid.RowNumberer(),//显示行号
  sm,//显示选择框
  {
    header : "姓名",// 列头文字说明
    width : 80,
    dataIndex : "Name",// 记录结构中的name属性值
    tooltip : "这是你的姓名"// 悬停提示
   }, {
    header : "性别",
    width : 40,
    dataIndex : "Sex",
    align : "center",
    renderer : function(v) {
     if (v == "男") {
      return "<img src='imgs/boy.gif'>";
     } else {
      return "<img src='imgs/girl.gif'>";
     }
    }
   }, {
    header : "生日",
    width : 150,
    format : "Y-m-d",
    dataIndex : "Birthday",
    renderer : Ext.util.Format.dateRenderer("Y-m-d")
   }, {
    header : "学历",
    width : 80,
    dataIndex : "Education",
    align :
"center"
   }, {
    id : "memo",
    header : "备注",
    dataIndex :
"Memo"
   }, {
    header : "操作",
    width : 150,
    dataIndex : "Operation",
    menuDisabled : true,
    renderer : function(v) {
     return
"<sapn style='margin-right:10px'><a href='#'>修改</a></span>"
       + "<span><a href='#'>删除</a></span>";
    }
   }
 ]);
 
 
// 给每个列添加数据
 var data = [{
    name : "学生A",
    sex : "男",
    birthday : Date.parseDate("1987-12-08", "Y-m-d"),
    edu : "本科",
    memo :
"无备注"
   }, {
    name : "学生B",
    sex : "女",
    birthday : Date.parseDate("1974-04-23", "Y-m-d"),
    edu : "大专",
    memo :
"漂亮MM"
   }, {
    name : "学生C",
    sex : "女",
    birthday : Date.parseDate("1978-05-17", "Y-m-d"),
    edu : "硕士",
    memo :
"无备注"
   }, {
    name : "学生D",
    sex : "女",
    birthday : Date.parseDate("1988-07-14", "Y-m-d"),
    edu : "硕士",
    memo :
"无备注"
   }];

 // proxy
 var proxy = new Ext.data.MemoryProxy(data);

 // 定义记录结果
 var Human = Ext.data.Record.create([{
    name : "Name",
    type : "string",
    mapping :
"name"
   }, {
    name : "Sex",
    type : "string",
    mapping :
"sex"
   }, {
    name : "Birthday",
    type : "string",
    mapping : "birthday"
   }, {
    name : "Education",
    type : "string",
    mapping :
"edu"
   }, {
    name : "Memo",
    type : "string",
    mapping :
"memo"
   }, {
    name : "Operation",
    type :
"string"
  
  // mapping:"oper"
  }]);

 var reader = new Ext.data.JsonReader({}, Human);

 //提供数据源
 var store = new Ext.data.Store({
    proxy : proxy,
    reader : reader
   });

 store.load();
 var grid = new Ext.grid.GridPanel({
  title:"学生信息",
  width:700,
  autoHeight:true,
  cm:cm,
  sm:sm,
  store:store,
  renderTo:"a",
  autoExpandColumn:"memo",//自动伸展
  buttonAlign:"center",
  buttons:[{
   text:"第一行",
   handler:function(){
    var rsm = grid.getSelectionModel();//得到行选择模型
    rsm.selectFirstRow();
   }
  },{
   text:"上一行",
   handler:function(){
    var rsm = grid.getSelectionModel();//得到选择行的模型
    if(!rsm.hasPrevious()){
     Ext.Msg.alert("警告","已到达第一行");
    }else{
     rsm.selectPrevious();
    }
   }
  },{
   text:"下一行",
   handler:function(){
    var rsm = grid.getSelectionModel();//得到行选择模型
    if(!rsm.hasNext()){
     Ext.Msg.alert("警告","已到达最后一行");
    }else{
     rsm.selectNext()
    }
   }
  },{
   text:"最后一行",
   handler:function(){
    var rsm = grid.getSelectionModel();//得到行选择模型
    rsm.selectLastRow();
   }
  },{
   text:"全选",
   handler:function(){
    var rsm = grid.getSelectionModel();//得到行选择模型
    rsm.selectAll();
   }
  },{
   text:"全不选",
   handler:function(){
    var rsm = grid.getSelectionModel();//得到行选择模型
    rsm.deselectRange(0,grid.getView().getRows().length - 1);
   }
  },{
   text:"反选",
   handler:function(){
    var rsm = grid.getSelectionModel();//得到行选择模型
    for (var i = grid.getView().getRows().length - 1; i >= 0; i--) {
     if(rsm.isSelected(i)){
      rsm.deselectRow(i);
     }else{
      rsm.selectRow(i,true);//必须保留原来的,否则效果无法是实现
     }
    }
   }
  }]
  
 });
})

 

 

 

 

 

 

 

 

 


 

分享到:
评论

相关推荐

    Ext2.2.GridPanel分页处理+dwrproxy(js对象和json两种数据)

    本话题将深入探讨如何在Ext2.2中使用GridPanel进行分页处理,并结合DWR(Direct Web Remoting)代理来实现数据的异步加载。我们将关注两个数据格式:JavaScript对象(JS对象)和JSON。 首先,Ext2.2的GridPanel是...

    Ext3.2的TreePanel和GridPanel的分页与Hibernate的分页功能的影射

    在使用表格的分页功能时,我们把该控件的start与limits参数与Hibernate的分页功能影射,从页实现了动态的分页效果;而TreePanel的更新也是一个比较常见的问题,当我们点击测试按钮时,TreePanel会请求远程服务器的...

    EXTJS分页全面分析

    #### 一、EXTJS GridPanel分页概述 在EXTJS框架中,`GridPanel`组件是一种常用的数据展示工具,它能够以表格形式呈现数据集。而分页功能是`GridPanel`一个重要的特性,它能够帮助用户更有效地管理大量的数据记录,...

    ExtJs中文教程

    #### 二十一、GridPanel分页 1. **JSON-LIB简介** - JSON-LIB是用于处理JSON数据的Java库,常用于服务器端分页。 2. **分页工具栏** - 展示如何使用ExtJs内置的分页工具栏组件。 3. **实现GridPanel分页** - 通过...

    轻松搞定ExtJS

    #### 第二十一章:GridPanel分页 - **跑跑题——JSON-LIB**:介绍了JSON-LIB库的基本用法,以及它如何与GridPanel配合使用。 - **分页工具栏**:详细说明了如何配置GridPanel的分页工具栏。 - **分页**:解释了如何...

    Extjs中文教程

    #### 二十、GridPanel分页 - **分页工具栏**:`PagerToolbar`用于控制GridPanel的分页显示,包括当前页码、总页数等信息。 - **分页数据加载**:实现GridPanel的分页加载功能,优化大数据量下的用户体验。 #### ...

    轻松搞定Extjs

    #### GridPanel分页 当表格中的数据量较大时,分页功能就显得尤为重要。 - **跑跑题——JSON-LIB**: 介绍了JSON-LIB在处理异步数据传输中的作用。 - **分页工具栏**: 详细解释了如何使用Extjs提供的分页工具栏组件...

    扩展GridPanel,附带分页选中状态,实现快速构建一个功能齐全的Grid

    在本文中,我们将深入探讨如何扩展ExtJS的GridPanel组件,以实现带有分页和选中状态的功能。ExtJS是一个强大的JavaScript库,用于构建富客户端应用程序,而GridPanel是其核心组件之一,用于展示和操作表格数据。通过...

    轻松搞定ExtJS.pdf

    GridPanel分页 - **分页工具栏**: 提供了翻页控件。 - **分页功能**: 根据用户选择显示特定页的数据。 #### 22. GridPanel扩展 - **扩展**: 通过自定义类增强GridPanel的功能。 - **RowExpander**: 展开表格行以...

    Ext中文文档

    #### 第二十一章:GridPanel分页 - **分页工具栏与实现**:介绍了如何在GridPanel中实现分页功能,以及相关的分页工具栏组件。 #### 第二十二章:GridPanel扩展 - **GridPanel的扩展功能**:探讨了GridPanel的...

    EXTJSEXT实例GridPanel.

    GridPanel是EXTJS中的一个核心组件,它允许开发者以网格形式展示数据,支持多种功能,如排序、分页、筛选、编辑等。在EXTJS中,GridPanel通常与Store结合使用,Store负责管理数据,而GridPanel则负责显示这些数据。 ...

Global site tag (gtag.js) - Google Analytics