`
lxy19791111
  • 浏览: 480898 次
  • 性别: Icon_minigender_1
  • 来自: 珠海
社区版块
存档分类
最新评论

extjs grid搜索分页实例[转]

阅读更多
<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>  

 该代码可能不完整,详细请看:http://www.coderhome.net/zifa/?p=214

分享到:
评论
1 楼 zhuxiaoleiking 2010-09-03  
          
引用
引用
引用
[/u][u][/i][i][/b][b][/b][b][b][/b]    [flash=200,200][flash=200,200][flash=200,200][flash=200,200][flash=200,200][flash=200,200][url][url][url][url][url][url][url][img][img][img][img][img][list]
  • [list]
  • [*][list]
  • [*][*][list]
  • [*][*][*][list]
  • [*][*][*][*][list]
  • [*][*][*][*][*][*]
  • [*][*][*][*][/list]
  • [*][*][*][/list]
  • [*][*][/list]
  • [*][/list]
  • [/list]
  • [/list][/img][/img][/img][/img][/img][/url][/url][/url][/url][/url][/url][/url][/flash][/flash][/flash][/flash][/flash][/flash]

    相关推荐

      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数据库即可,希望可以对初学者有一点...

      extjs后台分页实例

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

      Extjs4 Grid分页与自动刷新

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

      extjs grid示例代码

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

      EXTJS 转EXCEL实例

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

      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格式的数据,也可以是本地数据。 - **...

      ssh框架+extjs4.0grid实例

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

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

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

      ExtJs DataGridView控件实例

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

      SSH+ExtJs分页小例子

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

      EXTJS Grid导出Excel

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

      ExtJs动态grid的生成

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

      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