`
kidiaoer
  • 浏览: 822011 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
文章分类
社区版块
存档分类
最新评论

ExtJS3.0之可编辑表格EditorGridPanel

阅读更多
ExtJS3.0之可编辑表格EditorGridPanel

     可编辑表格是指可以直接在表格的单元格对表格的数据进行编辑,ExtJS中的可编辑表格由类Ext.grid.EditorGridPanel表示,xtype为editorgrid。使用EditorGridPanel与使用普通的GridPanel方式一样,区别只是在定义列信息的时候,可以指定某一列使用的编辑即可,下面来看一个简单的示例。

/// <reference path="vswd-ext_2.0.2.js" />
Ext.onReady(function(){
    var data=[{id:1,
        name:'小王',
        email:'xiaowang@easyjf.com',
        sex:'男',
        bornDate:'1991-4-4'},
    {id:2,
        name:'小李',
        email:'xiaoli@easyjf.com',
        sex:'男',
        bornDate:'1992-5-6'},
    {id:3,
        name:'小兰',
        email:'xiaoxiao@easyjf.com',
        sex:'女',
        bornDate:'1993-3-7'}
    ];
    var store=new Ext.data.JsonStore({
        data:data,
        fields:["id","name","sex","email",{name:"bornDate",type:"date",dateFormat:"Y-n-j"}]
    });
    var colM=new Ext.grid.ColumnModel([{
        header:"姓名",
        dataIndex:"name",
        sortable:true,
        editor:new Ext.form.TextField()
    },
    {
        header:"性别",
        dataIndex:"sex"
    },
    {
        header:"出生日期",
        dataIndex:"bornDate",
        width:100,
        renderer:Ext.util.Format.dateRenderer('Y年m月d日')
    },
    {
        header:"电子邮件",
        dataIndex:"email",
        sortable:true,
       
        width:150,
        editor:new Ext.form.TextField()}
    ]);
    var grid = new Ext.grid.EditorGridPanel({
        renderTo:"hello",
        title:"学生基本信息管理",
        height:200,
        width:600,
        cm:colM,
        store:store,
        autoExpandColumn:3
    });
});

     上面的程序首先定义了一个包含学生信息的对象数组,然后创建了一个JsonStore,在创建这个store的时候,指定bornDate列的类型为日期date类型,并使用dateFormat来指定日期信息的格式为"Y-n-j",Y代表年,n代表月,j代表日期。定义表格列模型的时候,对于“姓名”及“电子邮件”列我们使用editor来定义该列使用的编辑器,这里是使用Ext.form.TextField,最后使用new Ext.grid.EditorGridPanel(…)来创建一个可编辑的表格。执行上面的程序可以生成一个表格,双击表格中的“姓名”、或“电子邮件”单元格中的信息可以触发单元格的编辑,可以在单元格的文本框中直接编辑表格中的内容,修改过的单元格会有特殊的标记,如下图所示:



     为了能编辑“性别”及“出生日期”列,同样只需要在定义该列的时候指定editor即可。由于出生日期是日期类型,因此我们可以使用日期编辑器来编辑,“性别”一列的数据不应该让用户直接输入,而应该是通过下拉框进行选择。日期编辑器可以直接使用Ext.form.DateField组件,下拉选择框编辑器可以使用Ext.form.ComboBox组件,下面是实现对性别及出生日期等列信息编辑的代码:

     var colM=new Ext.grid.ColumnModel([{
            header:"姓名",
            dataIndex:"name",
            sortable:true,
            editor:new Ext.form.TextField()},
        {
            header:"性别",
            dataIndex:"sex",
            editor:new Ext.form.ComboBox({transform:"sexList",
                                    triggerAction: 'all',
                                    lazyRender:true})},
        {
            header:"出生日期",
            dataIndex:"bornDate",
            width:120,
            renderer:Ext.util.Format.dateRenderer('Y年m月d日'),
            editor:new Ext.form.DateField({format:'Y年m月d日'})},
        {
            header:"电子邮件",
            dataIndex:"email",
            sortable:true,
            editor:new Ext.form.TextField()}
        ]);
        var grid = new Ext.grid.EditorGridPanel({
            renderTo:"hello",
            title:"学生基本信息管理",
            height:200,
            width:600,
            cm:colM,
            store:store,
            autoExpandColumn:3,
            clicksToEdit:1
        });
      注意在定义EditorGridPanel的时候,我们增加了一个属性“clicksToEdit:1”,表示点击一次单元格即触发编辑,因为默认情况下该值为2,需要双击单元格才能编辑。为了给ComboBox中填充数据,我们使用设置了该组件的transform配置属性值为sexList,sexList是一个传统的<select>框,我们需要在html页面中直接定义,代码如下:

     <div id="hello" style="padding: 5px;">
        <select id="sexList" style="display:none;">
            <option>男</option>
            <option>女</option>
        </select>
    </div>
     执行上面的程序,我们可以得到一个能对表格中所有数据进行编辑的表格了。点击上面的“性别”一列的单元格时,会出现一个下拉选择框,点击“出生日期”一列的单元格时,会出现一个日期数据选择框,如图下所示:



(编辑性别列中的数据)



(编辑出生日期列中的数据)

     那么如何保存编辑后的数据呢?答案是直接使用afteredit事件。当对一个单元格进行编辑完之后,就会触发这个事件。请看下篇:ExtJs与服务器交互。
分享到:
评论

相关推荐

    extJS3.0完整包

    extJS3.0 extJS3.0 extJS3.0 extJS3.0 extJS3.0 extJS3.0 extJS3.0

    ExtJS3.0中文API

    绝对的ExtJS3.0中文API,本人在网上找了好久才找到的,在此奉献给大家!!解压后有30多兆!!

    ExtJS3.0 源码分析与开发实例宝典

    ExtJS3.0 源码分析与开发实例宝典

    extjs3.0开发包含示例api

    EXTJS 3.0的API是其核心组成部分,提供了大量的可重用组件,如表格、面板、窗口、菜单、按钮等。API主要包括以下几个部分: 1. **组件(Components)**:EXTJS的核心在于其强大的组件系统,如GridPanel(数据网格)...

    EXTJS3.0登陆DEMO

    EXTJS3.0提供了丰富的组件库,如表格、窗口、面板、菜单、表单等,使得开发者能够构建出交互性强、用户体验良好的前端应用。在这个DEMO中,EXTJS被用来创建登录界面,可能包括用户名和密码输入框、登录按钮以及一些...

    Extjs3.0 中文API帮助文档

    Extjs3.0中文API文档 够详细 够详细 够详细

    extjs3.0 组件

    在EXTJS 3.0 中,网格(Grid)组件也是不可或缺的一部分。网格用于展示结构化的数据,支持分页、排序、过滤和编辑。EXTJS 3.0 的网格组件提供了强大的功能,如行选择、列重排、自定义列渲染等,使得数据展示和操作变...

    Extjs3.0 常用组件介绍及怎么安装开发利器Spket

    **ExtJS 3.0 常用组件介绍** ExtJS 是一款强大的JavaScript库,用于构建富客户端Web应用。在3.0版本中,它提供了一系列丰富的组件,这些组件可以帮助开发者构建功能丰富的用户界面。以下是一些ExtJS 3.0中的常用...

    extjs3.0 中扩展的日期控件

    由于extjs3.0自己封装的时间不能够选择时分秒,给大家开发带来了一些麻烦。虽然网上有ext2.0的日期扩展控件,但...公司现在项目正用了,因此我就对extjs3.0时间控件的扩展,实现了可选择时分秒功能。希望对大家有帮助。

    EXTJS3.0中文API (离线)

    1. **组件系统**:EXTJS的核心是其组件模型,包括窗口(Window)、面板(Panel)、表单(Form)、表格(Grid)、树(Tree)等。这些组件都是可重用的,可以组合起来构建复杂的用户界面。 2. **数据绑定**:EXTJS...

    extjs3.0部分插件代码

    在"extjs3.0部分插件代码"这个资料中,我们可以期待学习到关于ExtJS 3.0版本的一些关键插件的实现细节。 首先,让我们关注一下"spinner"这个文件名。在ExtJS中,Spinner是一个常见的组件,它通常用作数值输入框,...

    extjs3.0 API 中英

    1. **组件系统**:ExtJS的核心是它的组件模型,包括各种类型的控件如表格(Grid)、面板(Panel)、窗口(Window)、菜单(Menu)等。这些组件可以组合成复杂的用户界面,并具有高度可配置性和可扩展性。 2. **数据...

    EXTJS3.0多文件上传组件

    EXTJS3.0是一款强大的JavaScript框架,用于构建富客户端应用程序。它提供了丰富的组件库和灵活的布局管理,使得开发者能够创建功能丰富的Web应用界面。在"EXTJS3.0多文件上传组件"中,我们主要关注的是如何利用EXTJS...

    ExtJS3.0可视化开发工具

    通过"ExtJS3.0可视化开发工具",开发者可以更高效地创建和维护ExtJS应用程序,提升开发效率。然而,值得注意的是,虽然可视化工具简化了部分流程,深入理解ExtJS的底层原理和API仍然是必要的,特别是在处理复杂逻辑...

    ExtJS 3.0 API 文档离线包

    1. **组件体系**:ExtJS的核心在于其强大的组件模型,包括Grids(表格)、Forms(表单)、Panels(面板)、Windows(窗口)等。每个组件都有详细的配置选项、事件和方法,使得开发者可以自定义界面的每一个细节。 2...

    EXTJS实例 EXTJS树,可以编辑的EXTJS,EXTJS3.0

    在EXTJS3.0中,树形组件(TreePanel)提供了丰富的可编辑性,允许用户不仅查看数据,还能直接编辑节点内容。这大大增强了用户体验,使得交互性更强。编辑功能通常包括添加新节点、删除现有节点、修改节点文本以及...

    ExtJs3.0 中文破解视图编辑器.rar

    ExtJs3.0 中文破解视图编辑器.rar AIR安装程序 Ext 帮组文档 你的支持就是我上传的动力 资源共享

    安装ExtJS3.0开发环境

    在网络上搜集,自己安装成功后在使用的开发环境。因ExtJS3.0和spket-1.6.18.jar的开发包太大不能上传,里面有安装说明和下载路径 ext-jsb2.zip jsb2是最新的。。请所需者取之

    ExtJs3.0API

    ExtJs3.0API,希望对大家有所帮助

    ExtJS 3.0 学习资源

    ExtJS 3.0 学习资源,有兴趣的 可以下载看看!!!!

Global site tag (gtag.js) - Google Analytics