`
alfredgao
  • 浏览: 137923 次
  • 性别: Icon_minigender_1
  • 来自: 青岛
社区版块
存档分类
最新评论

使用Ext的Grid,Form,Dialog来实现分页列表,CRUD

阅读更多
简介:这篇文章将告诉你如何使用Ext中的Grid,Form,Dialog来实现列表,创建,更新,删除,查找和分页功能
转载自:http://www.blogjava.net/puras/archive/2007/09/10/144047.html
参考:
http://extjs.com/learn/Tutorial:Using_Ext_grid_form_dialog_to_achieve_paging_list,_create,_edit,_delete_function

作者:puras

签于现在网上多数的Form的例子都多数是描述前台UI的,而没有对与服务端通讯的部分,故参考EXTJS的一个指南,写下此文,希望能对大家有所帮助.

在WEB应用中,大部分的页面都可以被分为:列表,创建,读取,更新,删除.在Ext的文档中心提供了一个非常好的例子,一个行内编辑的表格.然而,在现实中,行内编辑的表格是远远不够的,还需要用不同的方式来展示表单.下面的例子中向你展示如何在表格中创建/更新一个对话框表单.

列表功能

首先是是一个权限列表页,它包含分页,查询/过滤功能,创建和删除功能.

先定义数据源:

this.ds = new Ext.data.Store({
                    proxy : new Ext.data.HttpProxy({ url : '/wit/data.shtml' }), //'/wit/data.shtml' 一个读取数据列表的Action
                    reader : new Ext.data.JsonReader({ //使用JSON传输入数据
                        root : 'roleList',
                        totalProperty : 'totalCount',
                        id : 'id'
                    },
                    // 定义字段映射
                    [
                        {
                            name : 'id',
                            mapping : 'id',
                            type : 'string'
                        },
                        {
                            name : 'name',
                            mapping : 'name',
                            type : 'string'
                        },
                        {
                            name : 'description',
                            mapping : 'description',
                            type : 'string'
                        },
                        {
                            name : 'createDate',
                            mapping : 'createDate',
                            type : 'string'
                        },
                        {
                            name : 'updateDate',
                            mapping : 'updateDate',
                            type : 'string'
                        }
                    ]),
                    remoteSort : true
                });
                this.ds.load({ params:{ start : 0, limit : 20 } });

指定数据的来源位置,解析的方式,以及字段的映射.

接下来是表格中表头的定义,匹配上面的字段:

this.cm = new Ext.grid.ColumnModel([
                    {
                        header : '#',
                        dataIndex : 'id',
                        width : 30,
                        sortable : 1
                    },
                    {
                        header : '名称',
                        dataIndex : 'name',
                        width : 140,
                        sortable : 1
                    },
                    {
                        header : '描述',
                        dataIndex : 'description',
                        width : 140,
                        sortable : 1
                    },
                    {
                        header : '创建日期',
                        dataIndex : 'createDate',
                        width : 150,
                        sortable : 1
                    },
                    {
                        header : '修改日期',
                        dataIndex : 'updateDate',
                        width : 150,
                        sortable : 1
                    }
                ]);

再定义一下Grid:

this.grid = new Ext.grid.Grid('htmlGridPanel', {
                    ds : Grid.ds,
                    cm : Grid.cm,
                    enableColLock : false,
                    autoSizeColumns : true,
                    loadMask : true
                });
                this.grid.render();

现在,就可以看到简单的表格了.功能还有待完善.

接下来,在表格的头部面板处,添加过滤/查询的下拉菜单:

this.gridHead = this.grid.getView().getHeaderPanel(true);
                this.toolbar = new Ext.Toolbar(this.gridHead);
                this.filterBtn = new Ext.Toolbar.MenuButton({
                    icon : '../images/class.gif',
                    cls : 'x-btn-text-icon',
                    text : '选择过滤器',
                    tooltip : '选择一个过滤器',
                    menu : { items : [
                        new Ext.menu.CheckItem({ text : '编号', value : 'id', checked : true, group : 'filter', checkHandler : this.onItemCheck}),
                        new Ext.menu.CheckItem({ text : '名称', value : 'name', checked : false, group : 'filter', checkHandler : this.onItemCheck}),
                        new Ext.menu.CheckItem({ text : '描述', value : 'description', checked : false, group : 'filter', checkHandler : this.onItemCheck})
                    ]},
                    minWidth : 105
                });               
                this.toolbar.add(this.filterBtn);       
                this.filter = Ext.get(this.toolbar.addDom({
                    tag : 'input',
                    type : 'text',
                    size : '30',
                    value : '',
                    style : 'background : #F0F0F9;'
                }).el);
                this.filter.on('keypress', function(e) {
                    if (e.getKey() == e.ENTER && this.getValue().length > 0) {
                        Grid.ds.load({ params : { start : 0, limit : 20 }});
                    }
                });   

在表格的底部面板添加分页,添加,删除按钮:

this.gridFoot = this.grid.getView().getFooterPanel(true);               
                this.paging = new Ext.PagingToolbar(this.gridFoot, this.ds, {
                    pageSize : 20,
                    displayInfo : true,
                    displayMsg : '共有 {2} 条记录.当前显示 {0} - {1}条记录.',
                    emptyMsg : '没有记录!'
          
分享到:
评论

相关推荐

    使用Ext的Grid,Form,Dialog来实现分页列表,创建,修改,删除功能

    本文将详细介绍如何使用Ext的Grid、Form和Dialog组件来实现分页列表、创建、修改和删除功能。 1. **Ext Grid组件**:Grid是Ext的核心组件之一,用于展示数据列表。它可以轻松地实现数据的分页、排序、过滤等功能。...

    Android Dialog各种实现

    在Android开发中,Dialog...总的来说,Android Dialog是与用户交互的重要工具,理解并熟练使用各种Dialog可以帮助提升应用的用户体验。通过系统提供的Dialog和自定义Dialog,开发者可以根据应用场景选择最适合的方案。

    Android高级应用源码-自定义列表选择Dialog,适用网络请求数据.zip

    自定义Dialog可以通过继承`AlertDialog.Builder`或直接使用`DialogFragment`来创建。 2. **DialogFragment**: `DialogFragment`是Android支持库中的一个组件,它负责显示一个对话框。相比直接使用`AlertDialog`,...

    js实现的dialog

    本文将详细介绍如何使用纯 JavaScript 来创建一个功能完备的 Dialog 模块,以及涉及到的相关知识点。 首先,`lhgdialog` 文件可能是实现 Dialog 的核心库,而 `lhgcore.js` 可能是该库的基础组件或核心功能模块。这...

    easyUI的crud实现

    它的CRUD(Create、Read、Update、Delete)实现是指使用EasyUI来完成数据的创建、读取、更新和删除功能,这些是任何数据管理应用的基础操作。在这里,我们将深入探讨如何使用EasyUI和Java来实现这一目标。 首先,让...

    Ext.ux.Upload.Dialog使用

    在IT行业中,`Ext.ux.Upload.Dialog`是一个用于Ext JS框架的第三方组件,它扩展了标准的对话框(Dialog)功能,提供了文件上传的能力。这个组件通常被用于Web应用程序,以便用户可以方便地向服务器上传文件。下面...

    使用Dialog实现从页面顶部弹出类似搜索的对话框

    在标题“使用Dialog实现从页面顶部弹出类似搜索的对话框”中,我们要探讨的是如何创建一个从屏幕顶部滑出的对话框,模拟常见的搜索功能。这种效果在许多应用程序中都能看到,它提供了简洁且不中断用户体验的方式来...

    Android中用Dialog来做使用引导/新手引导页面

    本文将详细介绍如何使用自定义Dialog来实现这样的功能,特别针对初次使用APP的用户,通过半透明蒙版高亮目标并配以说明文字或图片,提升用户体验。 首先,我们要明白Dialog在Android中的角色。Dialog是一种轻量级的...

    springboot+mybatis+limit代码实现分页、web前端到后台、crud、搜索关键字、完整实例项目

    在本项目中,使用了`LIMIT`语句来实现分页查询。在Spring Boot中,这通常通过在MyBatis的Mapper接口中定义一个方法,接收页码和每页大小作为参数,然后在对应的Mapper XML文件中编写SQL查询,利用`LIMIT`和`OFFSET`...

    dialog弹框上实现下拉列表功能,有二级关联菜单选项功能ExpandableListViewDemo-master

    dialog弹框上实现下拉列表功能,有二级关联菜单选项功能ExpandableListViewDemo-master 通过设置属性,可实现只显示一个Group的子菜单 , 显示全部Group的子菜单 。需要自己设置就可以了。

    ext3.0所有控件演示代码

    通过`Ext.grid.GridPanel`创建表格,设置`store`来绑定数据,利用`columns`定义列配置。此外,还可以实现行选择、行编辑、行拖放等功能,提升用户体验。 2. 表单(Form):EXT3.0的表单组件允许开发者创建复杂的...

    android 用Button+dialog实现spinner

    然而,有时候我们可能希望自定义Spinner的展现形式,比如使用Button来触发一个Dialog来显示Spinner的选择项。这篇博客“android 用Button+dialog实现spinner”正是探讨了如何结合Button和Dialog来实现这样的功能。 ...

    jquery dialog简单实现插件

    你可以通过设置`.ui-widget`、`.ui-dialog`等类来改变对话框的整体外观,或者使用`.ui-dialog-titlebar`、`.ui-dialog-content`等类来调整特定部分的样式。如果需要全局改变所有对话框的样式,可以使用自定义主题...

    自定义dialog实现登录框

    本教程将详细介绍如何在Android中自定义Dialog以实现一个登录框。 首先,理解Dialog的基础概念。Dialog是Android系统提供的一个类,它可以在当前Activity之上显示一个半透明的窗口,用于向用户展示额外的信息或进行...

    仿QQ列表可折叠+自定义Dialog结合

    在Android应用开发中,...综上所述,"仿QQ列表可折叠+自定义Dialog结合"是Android开发中的一个重要实践,它涉及到了数据绑定、用户交互、动画效果以及性能优化等多个方面,开发者需要综合运用多种技术来实现这一功能。

    Extjs的学习资料

    2. **使用Ext的Grid, Form, Dialog来实现分页列表、创建、修改、删除功能**: - Grid:展示数据,支持分页、排序、选择行等操作。 - Form:用于数据输入和编辑,可以包含各种表单字段,如文本框、复选框、下拉框等...

    Dialog实现3D翻转效果

    在Android中,可以使用 Animation 和 ViewPropertyAnimator API 来实现各种动画效果。Animation类提供了一系列的动画类型,如旋转( RotateAnimation ),可以定义一个对象在一段时间内的起始和结束角度,实现旋转...

    dialog实现tabhost效果

    当需要在Dialog中实现TabHost的效果时,我们可以结合使用Dialog和ViewPager来达到目的。下面我们将详细探讨如何实现这个功能。 首先,我们要理解Dialog的基本用法。Dialog是Android中的一个对话框类,它可以包含...

    dialog 封装DialogFragment来实现的, 通用dialog

    本篇将详细介绍如何封装`DialogFragment`来创建一个通用的、可复用的`Dialog`组件,以及如何实现底部弹框和分享弹框。 首先,我们需要创建一个新的`DialogFragment`子类,例如`NiceDialog`。这个类应该包含以下核心...

Global site tag (gtag.js) - Google Analytics