浏览 2448 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2012-04-16
最后修改:2012-04-16
http://scnults.iteye.com/blog/1487637
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没有校验的问题啦~ 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |