`
easonfans
  • 浏览: 254050 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

extjs grid搜索分页实例

阅读更多

extjs grid搜索分页实例

最近要做一个extjs.grid的搜索,差点就要自己遍历data数据了,幸好,多看了看资料!知道只要在ds.load()之内做一些小的配置就能简单的实现查询!!!

以后做东西之前,不要茫茫然的拿过来就做,先上网查查,在做!站在巨人的肩膀上么,才能看得远。

谢谢一下这篇日志的发表人。

 

<script type="text/javascript">

Ext.onReady(function(){

var 
ds = new Ext.data.Store({//这是数据源

  
proxy : new Ext.data.HttpProxy({url:'index.php?model=user&action=list&'}),

        
reader: new Ext.data.JsonReader({

   
root'topics',

            
totalProperty'totalCount',

            
id'user_id'

   
},[

   
'user_id','username','real_name','telephone','station_status','headship'

       
])

    });

var 
colModel = new Ext.grid.ColumnModel([//定义列

   
{header:'ID',width:50,sortable:true,dataIndex:'user_id'},

   {
id:'title',header:'用户名'width:100,sortable:true,dataIndex:'username'},

   {
header:'真实姓名',width:100,sortable:true,dataIndex:'real_name'},

   {
header:'电话',width:100,sortable:true,dataIndex:'telephone'},

   {
header:'岗位状态',width:100,sortable:true,dataIndex:'station_status'},

   {
header:'职务',width:100,sortable:true,dataIndex:'headship'}

  ]);

var 
tb = new Ext.Toolbar('north-div');//创建一个工具条



tb.add({

  
text'添加',

        
handlernewUser

  
},{

        
text'编辑',

        
handlereditUser

  
},{

        
text'删除',

        
handlerdelUser

});

  

var 
grid = new Ext.grid.GridPanel({//列表

    
border:false,

    
region:'south',

    
height:500,

    
loadMasktrue,

    
el:'center',

    
title:'条目列表',

    
storeds,

    
cmcolModel,

    
autoScrolltrue,

    
bbar: new Ext.PagingToolbar({

     
pageSize20,

     
storeds,

     
displayInfotrue,

     
displayMsg'第{0} 到 {1} 条数据 共{2}条',

     
emptyMsg"没有数据"

          
})

            });

var 
top = new Ext.FormPanel({//这里是搜索表单

        
buttonAlign:'right',

  
labelWidth:70,

  
region:'center',

        
frame:true,

        
title'搜索',

        
items: [{

             
layout:'column',

             
items:[{

                 
columnWidth:.33,

                 
layout'form',

                 
items: [{

                     
xtype:'textfield',

                     
fieldLabel'用户名',

                     
id'username',

      
name'username',

                     
anchor:'90%'

                 
}]

             },{

                 
columnWidth:.33,

                 
layout'form',

                 
items: [{

                     
xtype:'textfield',

                     
fieldLabel'姓名',

                     
name'real_name',

      
id'real_name',

                     
anchor:'90%'

                 
}]

             },{

                 
columnWidth:.33,

                 
layout'form',

                 
items: [{

                     
xtype:'textfield',

                     
fieldLabel'Email',

                     
name'email',

      
id'email',

                     
vtype:'email',

                     
anchor:'90%'

                 
}]

             }]

         }

        ],

        
buttons: [{

            
text'保存',

   
handler:function(){

                                
// 这里是关键,重新载入数据源,并把搜索表单值提交

    
ds.load({params:{start:0limit:20,

     
username:Ext.get('username').dom.value,

     
real_name:Ext.get('real_name').dom.value,

     
email:Ext.get('email').dom.value}});

   }

        },{

         
text'重置',

   
handler:function(){top.form.reset();}

        }]

    });

var 
viewport = new Ext.Viewport({

        
layout:'border',

        
items:[{

     
border:false,

     
region:'north',

     
contentEl:'north-div',

     
tbar:tb,

     
height:26

   
},top,

   
grid

  
]}

);

ds.load({params:{start:0limit:20}});

        
// 这里很关键,如果不加,翻页后搜索条件就变没了,这里的意思是每次数据载入前先把搜索表单值加上去,这样就做到了翻页保留搜索条件了

ds.on('beforeload',function(){

  
Ext.apply(

  
this.baseParams,

  {

   
username:Ext.get('username').dom.value,

   
real_name:Ext.get('real_name').dom.value,

   
email:Ext.get('email').dom.value

  
});

});

function 
newUser() {

  
parent.newTab('400012','添加用户','index.php?model=user&action=add');

}

function 
editUser() {

  var 
grid.getSelectionModel().getSelections();

  if (
s.length==0) {

   
Ext.Msg.alert('出错啦','你还没有选择要操作的记录!');

  }

  for (
i=0;i<s.length;i++) {

   var 
id s[i].id;

   
parent.newTab('400012'+id,'编辑用户','index.php?model=user&action=add&user_id='+id);

  }

}

function 
delUser() {

  var 
ids getId(grid);

  if (
ids) {

   
Ext.Msg.confirm('确认''真的要删除吗?', function(btn){

    if (
btn == 'yes'){

     
Ext.Ajax.request({

        
url'index.php?model=user&action=delete&ids='+ids,

        
success: function(result){

       
json Ext.util.JSON.decode(result.responseText);

       
ds.reload();

       }

     });

    }

   });  

  } else {

   
Ext.Msg.alert('出错啦','你还没有选择要操作的记录!');

  }

}

loadend();

});

</script>

<div id="north-div"></div>

<div id="center"></div>[/i] 

 

 

来源:http://www.phpchina.com/bbs/redirect.php?tid=60381&goto=lastpost&sid=wHsSC8

分享到:
评论

相关推荐

    Extjs grid分页1

    ExtJS Grid 分页是Web应用中数据展示的重要组成部分,它允许用户高效地浏览大量数据而无需一次性加载所有记录。在本文中,我们将深入探讨ExtJS Grid的分页功能及其实现方式。 首先,ExtJS Grid是一种强大的...

    Extjs 4.0 MVC分页实例

    在这个MVC(Model-View-Controller)分页实例中,我们将探讨如何利用ExtJS 4.0的MVC架构来实现数据的分页展示。MVC模式是软件工程中的一个设计模式,它将应用程序分为三个主要部分:模型(Model)处理数据,视图...

    Extjs Grid 扩展实例

    "Extjs Grid 扩展实例"是一个演示如何增强Grid功能的实践案例,通过这个实例,我们可以学习到如何在原有Grid的基础上进行自定义扩展,实现更复杂的数据管理和用户交互。 首先,"extend"在编程中通常意味着类的继承...

    SSH Extjs treeGrid conboxTree 分页实例

    最近在自学Extjs,做了一个小例子,后台使用SSH,前台是ExtJs,其中包含了很多内容,例如grid,TreeGrid,comboxTree,分页等内容,数据库采用的是mysql,文件中包含了数据库文件,导入mysql数据库即可,希望可以对初学者有一点...

    Extjs4 Grid分页与自动刷新

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

    extjs后台分页实例

    总的来说,ExtJS后台分页实例展示了如何利用前端的ExtJS组件与后端JSP服务配合,实现数据的分页加载和展示。理解这个过程对于开发大型、数据密集型的Web应用至关重要,因为它能有效提高页面性能,减少不必要的数据...

    extjs grid示例代码

    ExtJS Grid是Sencha ExtJS框架中的一个核心组件,它用于构建数据驱动的表格视图。Grid组件在Web应用中广泛使用,因为它提供了强大的数据展示、排序、分页、筛选和编辑功能。以下是对`ExtJS Grid`示例代码的详细解析...

    extjs动态表格实例(封装GRID,从STRUTS2读取后台数据 )

    在这个"extjs动态表格实例"中,我们将探讨如何使用ExtJS封装Grid并从Struts2框架的后台获取数据。 首先,让我们了解ExtJS中的Grid组件。Grid是ExtJS的一个关键组件,它用于展示结构化数据,并支持多种操作,如排序...

    ExtJS_grid.rar_Grid javascript_extjs grid

    - **Grid Panel**:是ExtJS中的一个核心组件,用于显示二维数据,可以进行排序、筛选、分页等操作。 - **Store**:存储Grid的数据,可以是从服务器获取的JSON、XML或Array格式的数据,也可以是本地数据。 - **...

    ext extjs4学习经典实例 guice mybaits 简单权限 (全量包)

    【EXT JS4 学习经典实例】 EXT JS4 是一个基于 JavaScript 的富客户端应用框架,由 Sencha 公司开发。它提供了丰富的组件库,包括表格、树形视图、图表、窗口等,用于构建复杂的 Web 应用程序。EXT JS4 的核心特性...

    ssh框架+extjs4.0grid实例

    在这个实例中,Grid组件被用来展示数据,它能动态加载数据,支持排序、分页和过滤等功能。ExtJS 4.0与后台的Struts2协作,通过Ajax请求获取服务器端的数据,实现前后端的异步交互。 项目中可能包含以下文件结构: -...

    EXTJS 转EXCEL实例

    在EXTJS中,数据网格(Grid)是一种常用的数据展示组件,它能够以表格形式展示大量数据,并支持排序、分页、过滤等多种操作。要将GRID中的数据导出为Excel,我们需要涉及以下几个关键步骤: 1. **数据准备**:首先...

    EXTJS Grid导出Excel

    在事件处理函数中,我们需要获取当前Grid的所有数据,这可以通过Store的`getRange()`方法实现,即使Grid有分页,也能获取所有记录。 接着,我们需要在后端C#代码中处理这些数据并生成Excel文件。在.NET中,可以使用...

    ExtJs DataGridView控件实例

    综上所述,"ExtJs DataGridView控件实例"涵盖了ExtJs的Grid组件使用,与AJAX、WCF服务和Linq的集成,以及各种功能的实现,包括分页、排序、提示、以及增删改查操作。这个实例为开发者提供了丰富的参考,帮助他们更好...

    ExtJs动态grid的生成

    - 首先,你需要创建一个Ext.grid.Panel实例,这是ExtJS中的Grid组件。通过设置配置项如store(用于存储数据)、columns(定义列)等来定制Grid。 2. **动态生成列** - 你可以使用`columns`属性来动态生成列。例如...

    SSH+ExtJs分页小例子

    前端接收到数据后,使用ExtJS的Grid Panel或其他组件来显示分页结果。 总结来说,这个SSH+ExtJS分页小例子展示了如何利用Spring、Struts和Hibernate处理后端数据,以及如何结合ExtJS展示分页结果。通过理解这些代码...

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

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

    php extjs grid 装载数据

    首先,理解ExtJS Grid的基本结构至关重要。Grid由多个组件组成,包括Store(数据存储)、Model(数据模型)、Columns(列配置)等。Store负责管理数据,可以从服务器请求数据并将其提供给Grid。Model定义了数据字段...

    ExtJs_grid.txt

    其中,Grid是ExtJs中最常用的数据展示组件之一,它能够以表格形式显示数据,并提供了丰富的交互特性,如排序、筛选、分页等。 在ExtJs中,Grid的构建主要包括以下核心部分: - **ColumnModel**: 用于定义Grid中的...

    extjs前台分页插件PagingStore!

    ExtJS的PagingStore是其框架中用于实现前端分页功能的重要组件,主要适用于处理大量数据的场景,以提高网页性能并提供良好的用户体验。在ExtJS 3.x版本中,PagingStore是与GridPanel结合使用,使得用户可以逐页加载...

Global site tag (gtag.js) - Google Analytics