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,并在各种窗口中灵活展示。 1. **动态创建GridPanel**: 在Ext.NET中,动态创建GridPanel意味着在运行时根据需要生成组件。这通常涉及到在...
在本文中,我们将深入探讨`GridPanel`在Extnet框架...熟练掌握这些操作对于构建动态且交互性强的Web应用至关重要。理解并运用上述知识点,开发者能够有效地管理数据,提供用户友好的界面,从而提升应用的整体用户体验。
在集成TreePanel和GridPanel时,可能涉及到的概念有:将TreePanel的节点与GridPanel的数据关联,实现点击树节点时动态加载或更新GridPanel的数据,以及可能的父子数据联动操作。 在实际应用中,你可能会学习到以下...
2. 在需要时动态加载和卸载GridPanel,通过Ext JS的容器系统实现。 3. 如果数据更新频繁,可以考虑使用Store的buffered rendering特性,减少内存占用和渲染压力。 4. 对于复杂的配置,可以将它们分离到单独的配置...
在我们的例子中,我们将看到如何通过JavaScript代码来动态构建GridPanel。 在前端部分,HTML代码设置了必要的资源引用,包括CSS样式表和ExtJS的JavaScript库。`<div id="grid_div"></div>`这部分是用来放置...
在EXTJS中,GridPanel是一种常用的组件,用于展示表格数据。在实际应用中,我们经常需要在GridPanel底部显示一行“合计”行,以便对某一列或多列的数据进行求和或其他统计操作。这篇博文“给Extjs的GridPanel增加...
这个文件可能包含具体的示例代码和实现细节,通过阅读和学习这个文件,我们可以更深入地理解EXTJS GridPanel动态调整列宽的方法。 总结起来,EXTJS GridPanel的ColumnModel允许我们灵活控制列宽,通过`flex`和`...
- 最后,利用插件提供的API进行动态操作,如添加、删除或重组表头。 通过深入研究这两个文件,开发者可以了解EXTJS 2.2版本中实现多表头扩展的具体方法,这对于理解EXTJS的底层工作原理和提高EXTJS开发技能非常有...
在IT行业中,Web开发是一个重要的领域,而Tapestry和ExtJS是两个广泛使用的框架,它们各自在构建动态和交互式的Web应用上有着独特的优点。本文将深入探讨Tapestry 4.02版本中对ExtJS的GridPanel组件进行封装的相关...
4. **监听事件**:如果数据动态更新,需要监听Store的`datachanged`或`update`事件,重新计算并设置rowspan。 在实际应用中,可能会遇到一些挑战,例如性能问题。因为跨行需要计算每个单元格的rowspan,这可能对...
这个页面可以动态生成,将GridPanel的数据导出到一个适合打印的格式,如HTML表格,然后再进行渲染。预览页面可以提供用户查看和确认打印效果的机会。 "paging.html"、"array-grid.html"、"paging.js"和"array-grid....
接收一个函数作为参数,该函数负责根据提供的数据动态生成HTML。 8. **editable/editor/xtype** - **描述**:`editable`控制列是否可编辑;`editor`定义了列的编辑器;`xtype`定义了列的渲染器类型。 #### 五、...
NULL 博文链接:https://xiaohewoai.iteye.com/blog/409898
本文将通过一个具体的例子来详细介绍ExtJS中`GridPanel`的基本用法以及如何利用`HttpProxy`、`JsonReader`、`Store`等关键对象来构建动态数据展示界面。 #### 二、核心概念介绍 1. **HttpProxy** - `HttpProxy`是...
通过监听用户的交互,如点击、双击、排序等,我们可以动态地更新数据、执行服务器请求或触发其他业务逻辑。 关于"工具"标签,可能指的是开发者工具或者辅助开发的库,如Sencha CMD,它是ExtJS的命令行工具,用于...
通过`dataIndex`属性,我们可以将列头与数据模型的字段关联起来,实现数据的动态展示。此外,`sortable: true`设置使得用户可以通过点击列头对数据进行排序。 ```javascript var datas = [['1', 'gao', 'man'], ['2...
4、在工程中找到“main.js”文档,该文档中是控制应用显示GridPanel和TreePanel示例的开关 5、在IE的地址栏输入“http://localhost:8080/GridPanel”之后回车 6、如果一切正常,你会看到可以分页的表格;调整main.js...
总结来说,`treePanel`和`gridPanel`是Ext JS中用于构建动态数据界面的重要组件,它们提供了丰富的功能和灵活性,能够满足各种复杂的业务需求。结合源码理解和适当的开发工具,我们可以高效地实现页面上的数据管理...
最后,如果你需要动态改变CSS样式,可能需要监听GridPanel的事件,如`itemclick`或`selectionchange`,并在事件处理函数中执行相应的样式修改逻辑。 总之,通过Ext JS提供的API,我们可以轻松地对GridPanel的数据和...
动态表头的核心在于理解ExtJS的GridPanel组件和ColumnModel类。GridPanel用于显示数据,而ColumnModel则定义了GridPanel的列结构和属性,如宽度、对齐方式、可排序性等。 描述中的“csdn里有个兄弟类似的东西要10分...