您的位置:首页 > Web前端 > JavaScript

extjs 解决rowEditing不满足allowBlank时,无法save的问题

2014-10-21 19:58 393 查看
最近一个项目使用了extjs,在用rowEditing的时候遇到了棘手的问题,当某一column的editor使用了属性allowBlank:true时,启用编辑时会报错(“该行不能为空”),这时save按钮是灰色的无法提交。然而填了该行,save仍然无法提交。

经过google之后发现这是个bug,最好的解决方法就是重写rowEditing~ORZ

JS如下:

Ext.override(Ext.grid.RowEditor, {
addFieldsForColumn: function(column, initial) {
var me = this,
i, length, field;
if (Ext.isArray(column)) {
for (i = 0, length = column.length; i < length; i++) {
me.addFieldsForColumn(column[i], initial);
}
return;
}
if (column.getEditor) {
field = column.getEditor(null, {
xtype: 'displayfield',
getModelData: function() {
return null;
}
});
if (column.align === 'right') {
field.fieldStyle = 'text-align:right';
}
if (column.xtype === 'actioncolumn') {
field.fieldCls += ' ' + Ext.baseCSSPrefix + 'form-action-col-field';
}
if (me.isVisible() && me.context) {
if (field.is('displayfield')) {
me.renderColumnData(field, me.context.record, column);
} else {
field.suspendEvents();
field.setValue(me.context.record.get(column.dataIndex));
field.resumeEvents();
}
}
if (column.hidden) {
me.onColumnHide(column);
} else if (column.rendered && !initial) {
me.onColumnShow(column);
}

// -- start edit
me.mon(field, 'change', me.onFieldChange, me);
// -- end edit
}
}
});
//重写RowEditor
如果大家有遇到该问题的,只要在js文件里添加该段代码即可~
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  js extjs 前端
相关文章推荐