用了2年的Ext 渐渐对Ext熟络起来,经常去看下源码,自己瞎琢磨些功能,最近做了个EditorGridPanel数据校验,原理不难,不过绝对原创,有点意思,发下和大家分享~
原理:通过EditorGridPanel中ColumnModel中的editor绑定的控件,利用控件自身的校验达到对EditorGridPanel列的校验,目前想到的校验如空,非法值啥的可以配置到Ext.form.Field里的都可以,利用Ext.form.Field中的setValue与
validate方法判断该列输入是否符合校验
核心代码:
给EditorGridPanel增加一个通用的校验方法
Ext.apply(Ext.grid.EditorGridPanel.prototype,{
//增加EditorGridPanel的通用校验方法
isVa : function(records){
var cm = this.cm || this.colModel;
var f = true;
var column = {};
for (var i = 0; i < cm.columns.length; i++) {
var dataIndex = cm.getDataIndex(i);
column[dataIndex] = i;
}
for (var i = 0; i < records.length; i++) {
var o = records[i].data;
var rowindex = i;// 行id
for (var n in o) {
var colindex = column[n];
if (!!colindex && !!cm.columns[colindex].editor) {
if (!cm.columns[colindex].editor.field.fieldLabel){
cm.columns[colindex].editor.field.fieldLabel = cm.columns[colindex].header;
}
cm.columns[colindex].editor.field.setValue(o[n]);//给可编辑控件设值
var flag = cm.columns[colindex].editor.field.validate();//设值后校验
f = f && flag;
if (!flag) {
Ext.get(this.getView().getCell(rowindex,
colindex))
.addClass('x-form-invalid');//给不通过校验的具体空格增加错误css样式(Ext中form的样式)
}
} else {
continue;
}
}
}
return f;
}
})
列定义:
new Ext.grid.ColumnModel({
defaultSortable : true,
columns : [new Ext.grid.RowNumberer(), sm4, {
header : "困难与求助",
width : 200,
dataIndex : 'content',
editor : new Tps.TTextArea({
allowBlank : false//设置该列不可空时,该列自动校验
})
}]
});
调用:
var vRecords = grid.getStore().data.items; // 获取需要校验的数据数据
grid.isVa(vRecords)//执行校验,简单吧~~
效果截图:
搞掂,这样就解决了Ext中EditGridPanel没有校验的问题啦~
- 大小: 12.8 KB
分享到:
相关推荐
Ext.grid.EditorGridPanel是Ext JS库中的一个组件,主要用于创建具有可编辑单元格的表格。这个组件在数据展示和编辑方面提供了丰富的功能,是构建数据密集型应用的理想选择。下面将详细阐述其特点、工作原理及如何...
在EXT JS框架中,"ext 读取xml 可编辑grid"是一个常见的需求,涉及到的主要知识点包括EXT的数据对象、EditorGridPanel的使用以及EXT对XML数据格式的支持。下面将详细阐述这些内容。 EXT JS是一个强大的JavaScript库...
因为项目的需求,实现一个可以编辑的tree,在网上找了一个牛人写的控件.Ext.ux.maximgb.tg.EditorGridPanel 把源码下载下来以后 不能运行,自己根据给出的列子,另写了一个小程序.不过并没有与数据库交互.
【Ext TreePanel】是Ext JS库中的一个组件,主要用于展示层次结构...总之,Ext TreePanel和EditorGridPanel是Ext JS中处理树形数据和可编辑表格的强大工具,它们提供了丰富的功能和定制选项,满足各种复杂的应用场景。
标题中的"ext3 gridRowEditor本地数据简单demo"是指基于ExtJS 3.x版本的一个示例,它展示了如何使用GridPanel的RowEditor组件来编辑表格数据。ExtJS是一个流行的JavaScript库,用于构建富客户端应用程序,而ext3是其...
EditorGridPanel是Ext JS库中的一个组件,它结合了数据网格和表单编辑的功能,允许用户直接在网格的单元格内编辑数据。当用户点击某个单元格进行编辑时,编辑器应该在原单元格位置弹出,但有时由于某种原因,整个...
3. **行编辑**:EXT GRID支持行内编辑,用户可以直接在表格中修改数据,这需要结合EditorGridPanel和Form Field组件来实现。 4. **排序和过滤**:GRID可以实现列点击排序,通过配置`sortable`属性和`sortInfo`对象...
BoxComponent是Ext中的基本布局容器,可以用来控制子元素的位置和大小。通过调整BoxComponent的配置选项,开发者可以实现灵活的布局设计。 ##### 2. **Button(按钮组件)** Button组件是Web应用中最常见的交互...
- **Ext.grid.EditorGridPanel**: 提供单元格级别的编辑功能。 6. **表单(Forms)** - **Ext.form.FormPanel**: 创建表单的容器,支持多种表单元素和验证。 - **Ext.form.Field**: 表单字段类,如文本框、选择...
### Ext表格控件和树...通过以上内容,我们可以看到 `GridPanel`、`EditorGridPanel` 和 `TreePanel` 在 Ext JS 中的应用非常广泛,它们提供了强大的数据展示和编辑能力,同时也为开发者提供了高度的灵活性和定制性。
**2.5 Editor Grid Panel (Ext.grid.EditorGridPanel)** - **xtype**: `editorgrid` - **功能描述**:Editor Grid Panel 是一个支持行级编辑的网格面板。 - **主要用途**:适合于需要对表格中的数据进行编辑的场景...
在Ext.NET中,为了实现数据的后台分页,我们可以使用Store组件和Proxy对象。Store负责存储数据,而Proxy则处理与服务器的数据交互。设置`PageSize`属性来定义每页显示的数据量,然后通过配置`Model`定义数据字段。...
首先,EXT中的Editgridpanel是一个可编辑的表格组件,用于显示和编辑数据。它集成了数据绑定和行编辑功能,非常适合于数据管理界面。要将Editgridpanel与数据库连接,我们需要创建一个数据源,这通常是通过EXT的...
NULL 博文链接:https://zxf-noimp.iteye.com/blog/629629
73、Ext.grid.EditorGridPanel类 ……… 62 74、Ext.grid.PropertyGrid类 …………… 65 1、Ext类 addBehaviors(Object obj) : void 对选择的元素 应用事件侦听器,事件名以@附加在结尾,例如 addBehaviors({ ...
根据提供的文件信息,我们可以深入探讨如何在 Ext JS 中实现 Grid 的单元格合并功能。此案例主要涉及到了自定义 GridView 的 `renderHeaders` 方法来达到单元格合并的目的,并且还涉及了模板(Template)的使用、...
为了解决这个问题需要在EditorGridPanel的ColumnModel中显示ComboBox的地方使用renderer属性,重新渲染,方法如下: 代码如下: //部门列表 var comboxDepartmentStore = new Ext.data.Store({ proxy: new Ext.data....
在EXT JS库中,"ext的edittreegrid实现"是一种功能强大的组件,它结合了树形视图(Tree)和编辑网格(EditorGrid)的功能,允许用户在具有层次结构的数据上进行直观的编辑操作。这个组件对于那些需要管理结构化且...