`

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>

分享到:
评论
发表评论

文章已被作者锁定,不允许评论。

相关推荐

    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