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: '添加',
handler: newUser
},{
text: '编辑',
handler: editUser
},{
text: '删除',
handler: delUser
});
var grid = new Ext.grid.GridPanel({//列表
border:false,
region:'south',
height:500,
loadMask: true,
el:'center',
title:'条目列表',
store: ds,
cm: colModel,
autoScroll: true,
bbar: new Ext.PagingToolbar({
pageSize: 20,
store: ds,
displayInfo: true,
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:0, limit: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:0, limit: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 s = 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 分页是Web应用中数据展示的重要组成部分,它允许用户高效地浏览大量数据而无需一次性加载所有记录。在本文中,我们将深入探讨ExtJS Grid的分页功能及其实现方式。 首先,ExtJS Grid是一种强大的...
在这个MVC(Model-View-Controller)分页实例中,我们将探讨如何利用ExtJS 4.0的MVC架构来实现数据的分页展示。MVC模式是软件工程中的一个设计模式,它将应用程序分为三个主要部分:模型(Model)处理数据,视图...
"Extjs Grid 扩展实例"是一个演示如何增强Grid功能的实践案例,通过这个实例,我们可以学习到如何在原有Grid的基础上进行自定义扩展,实现更复杂的数据管理和用户交互。 首先,"extend"在编程中通常意味着类的继承...
最近在自学Extjs,做了一个小例子,后台使用SSH,前台是ExtJs,其中包含了很多内容,例如grid,TreeGrid,comboxTree,分页等内容,数据库采用的是mysql,文件中包含了数据库文件,导入mysql数据库即可,希望可以对初学者有一点...
### Extjs4 Grid分页与自动刷新 #### 一、Extjs4 Grid 分页功能实现 在使用Extjs4进行Web应用开发时,Grid控件是常用的数据展示组件之一。对于大数据量的情况,通常需要使用分页来提高用户体验。下面详细介绍如何...
总的来说,ExtJS后台分页实例展示了如何利用前端的ExtJS组件与后端JSP服务配合,实现数据的分页加载和展示。理解这个过程对于开发大型、数据密集型的Web应用至关重要,因为它能有效提高页面性能,减少不必要的数据...
ExtJS Grid是Sencha ExtJS框架中的一个核心组件,它用于构建数据驱动的表格视图。Grid组件在Web应用中广泛使用,因为它提供了强大的数据展示、排序、分页、筛选和编辑功能。以下是对`ExtJS Grid`示例代码的详细解析...
在这个"extjs动态表格实例"中,我们将探讨如何使用ExtJS封装Grid并从Struts2框架的后台获取数据。 首先,让我们了解ExtJS中的Grid组件。Grid是ExtJS的一个关键组件,它用于展示结构化数据,并支持多种操作,如排序...
- **Grid Panel**:是ExtJS中的一个核心组件,用于显示二维数据,可以进行排序、筛选、分页等操作。 - **Store**:存储Grid的数据,可以是从服务器获取的JSON、XML或Array格式的数据,也可以是本地数据。 - **...
【EXT JS4 学习经典实例】 EXT JS4 是一个基于 JavaScript 的富客户端应用框架,由 Sencha 公司开发。它提供了丰富的组件库,包括表格、树形视图、图表、窗口等,用于构建复杂的 Web 应用程序。EXT JS4 的核心特性...
在这个实例中,Grid组件被用来展示数据,它能动态加载数据,支持排序、分页和过滤等功能。ExtJS 4.0与后台的Struts2协作,通过Ajax请求获取服务器端的数据,实现前后端的异步交互。 项目中可能包含以下文件结构: -...
在EXTJS中,数据网格(Grid)是一种常用的数据展示组件,它能够以表格形式展示大量数据,并支持排序、分页、过滤等多种操作。要将GRID中的数据导出为Excel,我们需要涉及以下几个关键步骤: 1. **数据准备**:首先...
在事件处理函数中,我们需要获取当前Grid的所有数据,这可以通过Store的`getRange()`方法实现,即使Grid有分页,也能获取所有记录。 接着,我们需要在后端C#代码中处理这些数据并生成Excel文件。在.NET中,可以使用...
综上所述,"ExtJs DataGridView控件实例"涵盖了ExtJs的Grid组件使用,与AJAX、WCF服务和Linq的集成,以及各种功能的实现,包括分页、排序、提示、以及增删改查操作。这个实例为开发者提供了丰富的参考,帮助他们更好...
- 首先,你需要创建一个Ext.grid.Panel实例,这是ExtJS中的Grid组件。通过设置配置项如store(用于存储数据)、columns(定义列)等来定制Grid。 2. **动态生成列** - 你可以使用`columns`属性来动态生成列。例如...
前端接收到数据后,使用ExtJS的Grid Panel或其他组件来显示分页结果。 总结来说,这个SSH+ExtJS分页小例子展示了如何利用Spring、Struts和Hibernate处理后端数据,以及如何结合ExtJS展示分页结果。通过理解这些代码...
以上是实现ExtJs 6.5 Grid列表导出的基本流程,需要注意的是,这个过程可能需要根据具体的应用场景进行调整,例如处理复杂的数据格式、自定义渲染器、分页等。在实际开发中,可以封装成一个通用的Grid导出组件,以供...
首先,理解ExtJS Grid的基本结构至关重要。Grid由多个组件组成,包括Store(数据存储)、Model(数据模型)、Columns(列配置)等。Store负责管理数据,可以从服务器请求数据并将其提供给Grid。Model定义了数据字段...
其中,Grid是ExtJs中最常用的数据展示组件之一,它能够以表格形式显示数据,并提供了丰富的交互特性,如排序、筛选、分页等。 在ExtJs中,Grid的构建主要包括以下核心部分: - **ColumnModel**: 用于定义Grid中的...
ExtJS的PagingStore是其框架中用于实现前端分页功能的重要组件,主要适用于处理大量数据的场景,以提高网页性能并提供良好的用户体验。在ExtJS 3.x版本中,PagingStore是与GridPanel结合使用,使得用户可以逐页加载...