`
jlcon
  • 浏览: 172306 次
  • 性别: Icon_minigender_1
  • 来自: 重庆
社区版块
存档分类
最新评论

动态GridPanel

    博客分类:
  • JS
 
阅读更多

Ext.override(Ext.data.Store,{
        addField: function(field){
                if(typeof field == 'string'){
                        field = {name: field};
                }
                this.recordType.prototype.fields.replace(field);
                if(typeof field.defaultValue != 'undefined'){
                        this.each(function(r){
                                if(typeof r.data[field.name] == 'undefined'){
                                        r.data[field.name] = field.defaultValue;
                                }
                        });
                }
        },
        removeField: function(name){
                this.recordType.prototype.fields.removeKey(name);
                this.each(function(r){
                        delete r.data[name];
                });
        }
});
Ext.override(Ext.grid.ColumnModel,{
        addColumn: function(column, colIndex){
                if(typeof column == 'string'){
                        column = {header: column, dataIndex: column};
                }
                var config = this.config;
                this.config = [];
                if(typeof colIndex == 'number'){
                        config.splice(colIndex, 0, column);
                }else{
                        colIndex = config.push(column);
                }
                this.setConfig(config);
                return colIndex;
        },
        removeColumn: function(colIndex){
                var config = this.config;
                this.config = [config[colIndex]];
                config.remove(colIndex);
                this.setConfig(config);
        }
});
Ext.override(Ext.grid.GridPanel,{
        addColumn: function(field, column, colIndex){
                if(!column){
                        if(field.dataIndex){
                                column = field;
                                field = field.dataIndex;
                        } else{
                                column = field.name || field;
                        }
                }
                this.store.addField(field);
                this.colModel.addColumn(column, colIndex);
        },
        removeColumn: function(name, colIndex){
                this.store.removeField(name);
                if(typeof colIndex != 'number'){
                        colIndex = this.colModel.findColumnIndex(name);
                }
                if(colIndex >= 0){
                        this.colModel.removeColumn(colIndex);
                }
        }
});

 使用方法:

var grid = new Ext.grid.GridPanel({
        store: new Ext.data.SimpleStore({
                fields: ['A', 'B'],
                data: [['ABC', 'DEF'], ['GHI', 'JKL']]
        }),
        columns: [
                {header: 'A', dataIndex: 'A'},
                {header: 'B', dataIndex: 'B'}
        ]
});
new Ext.Viewport({
        layout: 'fit',
        items: grid
});
grid.addColumn('C');
grid.addColumn({name: 'D', defaultValue: 'D'}, {header: 'D', dataIndex: 'D'});
grid.removeColumn('B');
 

 

分享到:
评论

相关推荐

    ext.net 动态创建gridpanel

    在这个场景中,我们将深入探讨如何使用Ext.NET代码动态创建GridPanel,并在各种窗口中灵活展示。 1. **动态创建GridPanel**: 在Ext.NET中,动态创建GridPanel意味着在运行时根据需要生成组件。这通常涉及到在...

    gridpanel常用操作

    在本文中,我们将深入探讨`GridPanel`在Extnet框架...熟练掌握这些操作对于构建动态且交互性强的Web应用至关重要。理解并运用上述知识点,开发者能够有效地管理数据,提供用户友好的界面,从而提升应用的整体用户体验。

    Extjs入门教程(treePanel和GridPanel)

    在集成TreePanel和GridPanel时,可能涉及到的概念有:将TreePanel的节点与GridPanel的数据关联,实现点击树节点时动态加载或更新GridPanel的数据,以及可能的父子数据联动操作。 在实际应用中,你可能会学习到以下...

    Ext的gridpanel控件二次加载问题

    2. 在需要时动态加载和卸载GridPanel,通过Ext JS的容器系统实现。 3. 如果数据更新频繁,可以考虑使用Store的buffered rendering特性,减少内存占用和渲染压力。 4. 对于复杂的配置,可以将它们分离到单独的配置...

    extjs动态生成表格,前台+后台

    在我们的例子中,我们将看到如何通过JavaScript代码来动态构建GridPanel。 在前端部分,HTML代码设置了必要的资源引用,包括CSS样式表和ExtJS的JavaScript库。`<div id="grid_div"></div>`这部分是用来放置...

    给Extjs的GridPanel增加“合计”行

    在EXTJS中,GridPanel是一种常用的组件,用于展示表格数据。在实际应用中,我们经常需要在GridPanel底部显示一行“合计”行,以便对某一列或多列的数据进行求和或其他统计操作。这篇博文“给Extjs的GridPanel增加...

    EXTJS_GridPanel_ColumnModel_列的宽度随数据变化而变化

    这个文件可能包含具体的示例代码和实现细节,通过阅读和学习这个文件,我们可以更深入地理解EXTJS GridPanel动态调整列宽的方法。 总结起来,EXTJS GridPanel的ColumnModel允许我们灵活控制列宽,通过`flex`和`...

    Gridpanel多表头的扩展

    - 最后,利用插件提供的API进行动态操作,如添加、删除或重组表头。 通过深入研究这两个文件,开发者可以了解EXTJS 2.2版本中实现多表头扩展的具体方法,这对于理解EXTJS的底层工作原理和提高EXTJS开发技能非常有...

    tapestry4.02中封装ext的GridPanel组件

    在IT行业中,Web开发是一个重要的领域,而Tapestry和ExtJS是两个广泛使用的框架,它们各自在构建动态和交互式的Web应用上有着独特的优点。本文将深入探讨Tapestry 4.02版本中对ExtJS的GridPanel组件进行封装的相关...

    ext gridpanel 跨行

    4. **监听事件**:如果数据动态更新,需要监听Store的`datachanged`或`update`事件,重新计算并设置rowspan。 在实际应用中,可能会遇到一些挑战,例如性能问题。因为跨行需要计算每个单元格的rowspan,这可能对...

    GridPanel打印

    这个页面可以动态生成,将GridPanel的数据导出到一个适合打印的格式,如HTML表格,然后再进行渲染。预览页面可以提供用户查看和确认打印效果的机会。 "paging.html"、"array-grid.html"、"paging.js"和"array-grid....

    GridPanel属性详解

    接收一个函数作为参数,该函数负责根据提供的数据动态生成HTML。 8. **editable/editor/xtype** - **描述**:`editable`控制列是否可编辑;`editor`定义了列的编辑器;`xtype`定义了列的渲染器类型。 #### 五、...

    extjs gridPanel动态 源代码

    NULL 博文链接:https://xiaohewoai.iteye.com/blog/409898

    extjs gridpanel例子和简单应用

    本文将通过一个具体的例子来详细介绍ExtJS中`GridPanel`的基本用法以及如何利用`HttpProxy`、`JsonReader`、`Store`等关键对象来构建动态数据展示界面。 #### 二、核心概念介绍 1. **HttpProxy** - `HttpProxy`是...

    无废话ExtJs 系统教程十四[列表:GridPanel]

    通过监听用户的交互,如点击、双击、排序等,我们可以动态地更新数据、执行服务器请求或触发其他业务逻辑。 关于"工具"标签,可能指的是开发者工具或者辅助开发的库,如Sencha CMD,它是ExtJS的命令行工具,用于...

    Extjs4 GridPanel 的几种样式使用介绍

    通过`dataIndex`属性,我们可以将列头与数据模型的字段关联起来,实现数据的动态展示。此外,`sortable: true`设置使得用户可以通过点击列头对数据进行排序。 ```javascript var datas = [['1', 'gao', 'man'], ['2...

    Ext3.2的TreePanel和GridPanel的分页与Hibernate的分页功能的影射

    4、在工程中找到“main.js”文档,该文档中是控制应用显示GridPanel和TreePanel示例的开关 5、在IE的地址栏输入“http://localhost:8080/GridPanel”之后回车 6、如果一切正常,你会看到可以分页的表格;调整main.js...

    treePanel与gridPanel技术实现页面的增删改查

    总结来说,`treePanel`和`gridPanel`是Ext JS中用于构建动态数据界面的重要组件,它们提供了丰富的功能和灵活性,能够满足各种复杂的业务需求。结合源码理解和适当的开发工具,我们可以高效地实现页面上的数据管理...

    Ext修改GridPanel数据和字体颜色、css属性等

    最后,如果你需要动态改变CSS样式,可能需要监听GridPanel的事件,如`itemclick`或`selectionchange`,并在事件处理函数中执行相应的样式修改逻辑。 总之,通过Ext JS提供的API,我们可以轻松地对GridPanel的数据和...

    extjs 实现动态表头

    动态表头的核心在于理解ExtJS的GridPanel组件和ColumnModel类。GridPanel用于显示数据,而ColumnModel则定义了GridPanel的列结构和属性,如宽度、对齐方式、可排序性等。 描述中的“csdn里有个兄弟类似的东西要10分...

Global site tag (gtag.js) - Google Analytics