`
scnu_lts
  • 浏览: 19518 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

关于Ext中EditorGridPanel数据校验

 
阅读更多

 

      用了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.grid.EditorGridPanel是Ext JS库中的一个组件,主要用于创建具有可编辑单元格的表格。这个组件在数据展示和编辑方面提供了丰富的功能,是构建数据密集型应用的理想选择。下面将详细阐述其特点、工作原理及如何...

    ext 读取xml 可编辑grid

    在EXT JS框架中,"ext 读取xml 可编辑grid"是一个常见的需求,涉及到的主要知识点包括EXT的数据对象、EditorGridPanel的使用以及EXT对XML数据格式的支持。下面将详细阐述这些内容。 EXT JS是一个强大的JavaScript库...

    Ext可编辑的tree,EditorGridPanel

    因为项目的需求,实现一个可以编辑的tree,在网上找了一个牛人写的控件.Ext.ux.maximgb.tg.EditorGridPanel 把源码下载下来以后 不能运行,自己根据给出的列子,另写了一个小程序.不过并没有与数据库交互.

    Ext TreePanel

    【Ext TreePanel】是Ext JS库中的一个组件,主要用于展示层次结构...总之,Ext TreePanel和EditorGridPanel是Ext JS中处理树形数据和可编辑表格的强大工具,它们提供了丰富的功能和定制选项,满足各种复杂的应用场景。

    ext3 gridRowEditor本地数据简单demo,有注释

    标题中的"ext3 gridRowEditor本地数据简单demo"是指基于ExtJS 3.x版本的一个示例,它展示了如何使用GridPanel的RowEditor组件来编辑表格数据。ExtJS是一个流行的JavaScript库,用于构建富客户端应用程序,而ext3是其...

    解决editorgridpanel编辑时视图向右移动的问题

    EditorGridPanel是Ext JS库中的一个组件,它结合了数据网格和表单编辑的功能,允许用户直接在网格的单元格内编辑数据。当用户点击某个单元格进行编辑时,编辑器应该在原单元格位置弹出,但有时由于某种原因,整个...

    EXT2.0 GRID 示例

    3. **行编辑**:EXT GRID支持行内编辑,用户可以直接在表格中修改数据,这需要结合EditorGridPanel和Form Field组件来实现。 4. **排序和过滤**:GRID可以实现列点击排序,通过配置`sortable`属性和`sortInfo`对象...

    Ext组件说明 Ext组件概述

    BoxComponent是Ext中的基本布局容器,可以用来控制子元素的位置和大小。通过调整BoxComponent的配置选项,开发者可以实现灵活的布局设计。 ##### 2. **Button(按钮组件)** Button组件是Web应用中最常见的交互...

    Ext3.0 api帮助文档

    - **Ext.grid.EditorGridPanel**: 提供单元格级别的编辑功能。 6. **表单(Forms)** - **Ext.form.FormPanel**: 创建表单的容器,支持多种表单元素和验证。 - **Ext.form.Field**: 表单字段类,如文本框、选择...

    Ext表格控件和树控件

    ### Ext表格控件和树...通过以上内容,我们可以看到 `GridPanel`、`EditorGridPanel` 和 `TreePanel` 在 Ext JS 中的应用非常广泛,它们提供了强大的数据展示和编辑能力,同时也为开发者提供了高度的灵活性和定制性。

    Ext组件描述,各个组件含义

    **2.5 Editor Grid Panel (Ext.grid.EditorGridPanel)** - **xtype**: `editorgrid` - **功能描述**:Editor Grid Panel 是一个支持行级编辑的网格面板。 - **主要用途**:适合于需要对表格中的数据进行编辑的场景...

    Ext.net后台分页增删改

    在Ext.NET中,为了实现数据的后台分页,我们可以使用Store组件和Proxy对象。Store负责存储数据,而Proxy则处理与服务器的数据交互。设置`PageSize`属性来定义每页显示的数据量,然后通过配置`Model`定义数据字段。...

    Ext 连接数据库的相关操作

    首先,EXT中的Editgridpanel是一个可编辑的表格组件,用于显示和编辑数据。它集成了数据绑定和行编辑功能,非常适合于数据管理界面。要将Editgridpanel与数据库连接,我们需要创建一个数据源,这通常是通过EXT的...

    Extjs可编辑的EditorGridPanel

    NULL 博文链接:https://zxf-noimp.iteye.com/blog/629629

    EXT核心API详解

    73、Ext.grid.EditorGridPanel类 ……… 62 74、Ext.grid.PropertyGrid类 …………… 65 1、Ext类 addBehaviors(Object obj) : void 对选择的元素 应用事件侦听器,事件名以@附加在结尾,例如 addBehaviors({ ...

    Ext grid合并单元格

    根据提供的文件信息,我们可以深入探讨如何在 Ext JS 中实现 Grid 的单元格合并功能。此案例主要涉及到了自定义 GridView 的 `renderHeaders` 方法来达到单元格合并的目的,并且还涉及了模板(Template)的使用、...

    Extjs EditorGridPanel中ComboBox列的显示问题

    为了解决这个问题需要在EditorGridPanel的ColumnModel中显示ComboBox的地方使用renderer属性,重新渲染,方法如下: 代码如下: //部门列表 var comboxDepartmentStore = new Ext.data.Store({ proxy: new Ext.data....

    ext的edittreegrid实现

    在EXT JS库中,"ext的edittreegrid实现"是一种功能强大的组件,它结合了树形视图(Tree)和编辑网格(EditorGrid)的功能,允许用户在具有层次结构的数据上进行直观的编辑操作。这个组件对于那些需要管理结构化且...

Global site tag (gtag.js) - Google Analytics