`

ExtJs4中gird列中增加操作列,并给操作按钮绑定事件

 
阅读更多

在ExtJs4中,grid组件有Ext.grid.column.Action组件,所有要增加操作列,只需指定列的xtype为actioncolumn即可,例如:

Ext.create('Ext.grid.Panel', {
    renderTo: Ext.getBody(),
    width: 500,
    height: 400,
    store: Ext.create('Ext.data.Store', {
        fields: ['id', 'name'],
        data: [
            {id: '1', name: '张三'},
            {id: '2', name: '李四'}
        ]
    }),
    columns: [
        {text: '姓名', dataIndex: 'name', flex: 1},
        {
            xtype: 'actioncolumn',
            text: '操作',
            width: 100,
            tdCls: 'action',
            items: [{
                icon: 'images/edit.png',
                tooltip: '编辑',
                handler: function (grid, rowIndex, colIndex, node, e, record, rowEl) {
                    // do something...
                }
            }, {
                icon: 'images/delete.png',
                tooltip: '删除',
                handler: function (grid, rowIndex, colIndex, node, e, record, rowEl) {
                    // do something...
                }
            }]
	}
    ]
});

 

但如果采用Ext MVC来编写的话,这样的写法就不太适合,要想把handler中的处理移到controller控制层里面去,就必须给handler绑定触发事件:

 

items:[{
    action: 'edit',
    icon: 'images/edit.png',
    tooltip: '编辑',
    handler: function (grid, rowIndex, colIndex, node, e, record, rowEl) {
        this.fireEvent('itemclick', this, grid, rowIndex, colIndex, node, e, record, rowEl);
    }
}, {
    action: 'delete',
    icon: 'images/delete.png',
    tooltip: '删除',
    handler: function (grid, rowIndex, colIndex, node, e, record, rowEl) {   
        this.fireEvent('itemclick', this, grid, rowIndex, colIndex, node, e, record, rowEl);
    }
}]

 

在controller控制层中,在来编写itemclick的事件:

init: function () {
    this.control({
        'grid actioncolumn': {
            itemclick: this.actionBtnEvent
        }
    })
},
actionBtnEvent: function (column, grid, rowIndex, colIndex, node, e, record, rowEl) {
    if (node.action == 'edit') {
        // do something...
    } else if (node.action == 'delete') {
        // do something...
    }
}

 

分享到:
评论

相关推荐

    ExtJS文字按钮列

    在ExtJS中,"按钮列"(Button Column)是一种特殊的列类型,常用于表格面板,允许用户在每一行数据的特定列上执行操作。 标题提到的"ExtJS文字按钮列"是指在ExtJS表格中添加一列,该列包含的是文字按钮而非图片按钮...

    extjs4中文文档

    10. **拖放功能**:EXTJS4支持拖放操作,用户可以轻松实现组件间的拖放行为,如在数据网格中的行排序。 11. **国际化支持**:EXTJS4内置了多语言支持,方便开发多语言版本的应用。 12. **响应式设计**:EXTJS4的...

    ExtJS 4 button按钮

    ExtJS 4的Button组件还提供了一系列方法来控制和操作按钮的状态和行为,包括但不限于: - **enable()**:启用按钮,使其可被点击。 - **disable()**:禁用按钮,防止用户进行任何操作。 - **destroy()**:销毁按钮...

    ssh+extjs4.0grid删除数据

    2. **定义删除行为**:为Grid添加一个删除按钮或右键菜单,绑定删除操作。在触发删除事件时,获取选中的行或记录ID。 3. **发送删除请求**:利用Ext.Ajax或Ext.data.Store的`remove`方法,传入要删除的记录,然后...

    给Extjs的GridPanel增加“合计”行

    这篇博文“给Extjs的GridPanel增加‘合计’行”将指导我们如何实现这一功能。 首先,我们需要理解EXTJS的GridPanel结构。GridPanel由Store(数据存储)、ColumnModel(列模型)和View(视图)等主要部分组成。在...

    extJs3升级extjs4方案

    在 ExtJS3 中,我们可以使用 Ext.extend 来定义类,而在 ExtJS4 中,我们需要使用 Ext.define 来定义类。例如,在 ExtJS3 中,我们可以使用以下代码来定义一个类: ```javascript Ext.ux.PostStore = Ext.extend...

    ExtJs 4 API中文

    ExtJs 4 API 中文

    ExtJs的resultGrids中动态添加按钮

    本文将深入探讨如何在ExtJS的`resultGrids`中动态添加按钮,并结合`SuserInfoRes_js.jsp`文件名称推测可能的实现方法。 动态添加按钮在很多情况下非常有用,比如在表格数据加载后根据特定条件显示或隐藏操作按钮,...

    Extjs4 grid使用例子

    在给定的"Extjs4 grid使用例子"中,我们可以深入理解如何在MVC架构下有效地利用ExtJS4的Grid组件。Grid组件是ExtJS中的核心部分,它提供了一个灵活的、可定制的数据展示网格,通常用于显示和操作大量数据。 1. **...

    extjs最简单的数据绑定和修改

    在“extjs最简单的数据绑定和修改”这个主题中,我们将探讨如何在ExtJS中实现数据的双向绑定以及如何进行数据的修改。 1. 数据模型(Model): 在ExtJS中,数据模型定义了数据对象的结构和属性。创建一个模型类,...

    Extjs4使用要点个人整理

    2. **按钮(Button)的用法**:`EXTjs button用法.doc`将详细介绍如何创建和使用ExtJS 4的按钮组件,包括设置按钮文本、图标、事件监听器以及使用不同类型的按钮,如工具栏按钮、菜单按钮等。 3. **表单(Form)...

    ExtJS4多文件上传,带进度条及管理

    1. **创建uploadPanel**:在ExtJS4中定义一个面板,包含文件选择输入框、上传按钮和其他控件。 2. **集成swfupload**:引入swfupload库,配置相关参数,如文件类型、最大上传大小等。 3. **事件监听**:设置事件监听...

    extjs4学习文档

    EXTJS4的学习文档还包括更多关于组件、布局、数据绑定、事件处理等方面的详细内容,这些都是构建EXTJS应用不可或缺的知识。通过深入学习和实践,开发者可以熟练掌握EXTJS4,创建功能丰富的Web应用程序。

    Extjs 重写Panel添加click事件

    在这个场景中,我们将深入探讨如何在Ext JS中重写Panel并为其添加click事件。 首先,理解Panel的基本结构是至关重要的。一个Panel由多个部分组成,包括头部(header)、主体(body)和脚部(footer)。我们可以通过...

    ExtJS grid过滤操作

    ExtJS Grid是一个强大的数据展示组件,它允许用户以表格的形式查看和操作大量数据。在实际应用中,数据过滤是常见的需求,以便用户能快速定位到感兴趣的信息。本篇将深入探讨ExtJS Grid的过滤操作,以及如何动态地对...

    extjs3.0中文API

    在ExtJS中,API涵盖了所有可用的组件、布局、数据绑定、事件处理等。 在ExtJS 3.0中,核心知识点包括: 1. **组件系统**:ExtJS 3.0包含了大量的UI组件,如按钮(Button)、表格(Grid)、面板(Panel)、表单...

    extjs 数据导出到Excel,数据列自选

    标题中的“extjs 数据导出到Excel,数据列自选”指的是使用EXTJS框架实现一个功能,让用户能够从Web应用中选择需要的数据列,并将这些选定的数据导出为Excel文件。EXTJS是一个强大的JavaScript库,专门用于构建富...

    ExtJS如何自定义图片按钮组件

    4.此组件继承的是Ext.Panel,而不是Button,所以此组件并没有所有Ext.Button的功能但是拥有所有Ext.Panel功能并新增了点击事件(使用规范请参照js附件的onReady函数)。本人现正在研究如何重写Ext.Button,如有所收获,...

    ExtJS3.2列布局

    "ExtJS3.2列布局"是这个框架中的一个重要概念,尤其在处理form表单时非常实用。 列布局(Column Layout)是ExtJS的一种布局策略,它允许你在同一行内创建多个并排显示的区域,每个区域可以包含不同的组件,如文本框...

    Extjs4 图片浏览器

    这款图片浏览器利用了ExtJS4的组件化、数据绑定和事件处理等特性,为用户提供了一个交互性强、功能丰富的图片浏览体验。 在实现这个图片浏览器的过程中,开发者可能使用了以下核心ExtJS4组件和技术: 1. **Panel...

Global site tag (gtag.js) - Google Analytics