//column model
var eidtorGridColumnModel = new Ext.grid.ColumnModel([
{
header:'编号',dataIndex:'id',editor : new Ext.grid.GridEditor(new Ext.form.NumberField({
allowBlank: false
}))
},
{header:'姓名',dataIndex:'name',editor : new Ext.grid.GridEditor(new Ext.form.TextField({
allowBlank: false
}))
},
{
header:'描述',dataIndex:'desc',editor : new Ext.grid.GridEditor(new Ext.form.TextField({
allowBlank: false
}))
}
]);
/**
* 本想直接new 一个Record,一看API发现这句话
* Record ( [ Object data ], [ Object id ] )
* 此构造函数不应该用来创建Record对象。 作为替代,使用create 创建一个Ext.data.Record的子类
*/
var MyRecord = Ext.data.Record.create([
{name:'id',type:'Number'},
{name:'name',type:'String'},
{name:'name',type:'String'}
]);
var editorGridStore = new Ext.data.JsonStore(
{
fields : [
'id','name','desc'
],
data : data2
}
);
//new一个可编辑的表格
var editorGrid = new Ext.grid.EditorGridPanel(
{
id:'eg',
renderTo: 'editorGrid',
cm : eidtorGridColumnModel,
autoHeight:true,
store : editorGridStore,//这里如果在内部new JsonStore的话,在事件中就无法引用到这个store了
tbar : new Ext.Toolbar(
[
'-',
{
text:'添加',
handler : function(){
var newRow = new MyRecord(
{
id:'',
name:'',
desc:''
}
);
editorGrid.stopEditing();
editorGridStore.insert(0,newRow),
editorGrid.startEditing(0,0);
}
},
'-',
{
text:'删除',
handler:function(){
var sm = editorGrid.getSelectionModel();
/**
* AbstractSelectionModel类有两个子类CellSelectionModel, RowSelectionModel-->CheckboxSelectionModel
* 对于EditorGridPanel获取的应该是CellSelectionModel的对象,那么就可以调用它的
* getSelectedCell()来获取选中的格子的数组的位置
*/
var cell = sm.getSelectedCell();//这个是获取选中的格子在数组中的位置,如:[0,1],以数组的形式表示
var record = editorGridStore.getAt(cell[0]);//这里是选择了store中的第cell所在的行的record
/**
* 这个record相当于store中的一条数据,store内有一个名为data的MixCollection,它用来存放reader解析来的数据,
* 因此可以用它来得到具体某一行的数据,如store.getAt(0)会得到第一行的record,record.get('name')可以得到相应
* 名称的值,而对store进行添加或者删除操作都会反映到html界面中来
*/
editorGridStore.remove(record);
}
},
'-',
{
text:'保存',
handler : function(){
/**
* 对于做了修改的行,store.modified这个数组里记录下了修改行的信息
* record.json记录了原始数据,如果当前Record是通过 ArrayReader 或者一个JsonReader 创建时才存在
* record.data记录了修改后的数据
* record.fields存放的是列的信息(用MixCollection存的),可以取到列信息
*
* 发现个问题(不知道是我还没有深入学习还是因为是个BUG):
* 一旦你修改了某个格子里面的数据,modified这个数组里面就会添加一条record,
* 如第一行数据为:1,sky,human
* 现在改成:2,sky,humn
* modified里抽对应的record为:json-->1,sky,human data-->2,sky,human
* 我这个时候将2重新变为1,照理说这个时候modified应该清空,而ext却没做任何处理,
* modifed里面json与data都成了1,sky,human,这个时候如果进行保存操作的话会出现什么问题?
*/
var record = editorGrid.getStore().modified[0];
alert(record.get('name'));
}
}
]
)
}
);
store进行操作时会触发相应的事件,我猜测在事件中会对调用这个store的组件进行重绘
分享到:
相关推荐
Ext.grid.EditorGridPanel是Ext JS库中的一个组件,主要用于创建具有可编辑单元格的表格。这个组件在数据展示和编辑方面提供了丰富的功能,是构建数据密集型应用的理想选择。下面将详细阐述其特点、工作原理及如何...
在使用EditorGridPanel进行数据编辑时,用户可能会遇到一个常见的问题,即在单元格编辑过程中,整个视图会向右移动,导致当前编辑的单元格离开视线。这给用户操作带来不便,影响了使用体验。本文将深入探讨这个问题...
因为项目的需求,实现一个可以编辑的tree,在网上找了一个牛人写的控件.Ext.ux.maximgb.tg.EditorGridPanel 把源码下载下来以后 不能运行,自己根据给出的列子,另写了一个小程序.不过并没有与数据库交互.
在EXT JS框架中,"ext 读取xml 可编辑grid"是一个常见的需求,涉及到的主要知识点包括EXT的数据对象、EditorGridPanel的使用以及EXT对XML数据格式的支持。下面将详细阐述这些内容。 EXT JS是一个强大的JavaScript库...
NULL 博文链接:https://zxf-noimp.iteye.com/blog/629629
通过在列配置中指定`editor`属性,我们可以为每个单元格添加编辑器,例如`TextField`、`ComboBox`等,使得用户可以直接在网格中修改数据。编辑时,`EditorGridPanel`会使用这些编辑器来控制用户的输入,并在用户完成...
为了解决这个问题需要在EditorGridPanel的ColumnModel中显示ComboBox的地方使用renderer属性,重新渲染,方法如下: 代码如下: //部门列表 var comboxDepartmentStore = new Ext.data.Store({ proxy: new Ext.data....
### Ext组件概述与初学者指南 #### 一、Ext组件概览 Ext是一个功能丰富的JavaScript框架,用于构建桌面级Web应用程序。它提供了大量的组件和工具,使得开发者能够快速且高效地构建用户界面。对于初学者而言,理解...
3. **行编辑**:EXT GRID支持行内编辑,用户可以直接在表格中修改数据,这需要结合EditorGridPanel和Form Field组件来实现。 4. **排序和过滤**:GRID可以实现列点击排序,通过配置`sortable`属性和`sortInfo`对象...
**2.5 Editor Grid Panel (Ext.grid.EditorGridPanel)** - **xtype**: `editorgrid` - **功能描述**:Editor Grid Panel 是一个支持行级编辑的网格面板。 - **主要用途**:适合于需要对表格中的数据进行编辑的场景...
在这个例子中,我们将探讨如何使用EXT连接SQL Server数据库,实现Editgridpanel的数据展示、分页、查询和删除功能。 首先,EXT中的Editgridpanel是一个可编辑的表格组件,用于显示和编辑数据。它集成了数据绑定和行...
在"Ext.NET后台分页增删改"这个主题中,我们将探讨如何利用Ext.NET实现数据库后台分页、树形视图操作以及Grid面板的CRUD(创建、读取、更新和删除)功能。 首先,让我们深入了解一下后台分页。在Ext.NET中,为了...
其中,基本组件包括Box、Button、ColorPalette、Component、Container等,工具栏组件如Toolbar、TBButton,而表单及元素组件则涉及Editor、EditorGridPanel等。 EXT JS的强大之处在于它丰富的组件库和高度可定制性...
- **Ext.grid.EditorGridPanel**: 提供单元格级别的编辑功能。 6. **表单(Forms)** - **Ext.form.FormPanel**: 创建表单的容器,支持多种表单元素和验证。 - **Ext.form.Field**: 表单字段类,如文本框、选择...
73、Ext.grid.EditorGridPanel类 ……… 62 74、Ext.grid.PropertyGrid类 …………… 65 1、Ext类 addBehaviors(Object obj) : void 对选择的元素 应用事件侦听器,事件名以@附加在结尾,例如 addBehaviors({ ...
在EXT JS库中,"ext的edittreegrid实现"是一种功能强大的组件,它结合了树形视图(Tree)和编辑网格(EditorGrid)的功能,允许用户在具有层次结构的数据上进行直观的编辑操作。这个组件对于那些需要管理结构化且...
标题中的"ext3 gridRowEditor本地数据简单demo"是指基于ExtJS 3.x版本的一个示例,它展示了如何使用GridPanel的RowEditor组件来编辑表格数据。ExtJS是一个流行的JavaScript库,用于构建富客户端应用程序,而ext3是其...
### Ext表格控件和树...通过以上内容,我们可以看到 `GridPanel`、`EditorGridPanel` 和 `TreePanel` 在 Ext JS 中的应用非常广泛,它们提供了强大的数据展示和编辑能力,同时也为开发者提供了高度的灵活性和定制性。
根据提供的文件信息,我们可以深入探讨如何在 Ext JS 中实现 Grid 的单元格合并功能。此案例主要涉及到了自定义 GridView 的 `renderHeaders` 方法来达到单元格合并的目的,并且还涉及了模板(Template)的使用、...