我正在尝试编写为表单上的所有字段设置 readOnly 属性的方法。
我的代码:
Ext.override(Ext.form.Panel,{
setReadOnlyForAll: function(bReadOnly) {
this.cascade(function(f) {
if (f.isFormField) {
f.setReadOnly(bReadOnly);
}
});
});
从 Ext.form.Panel 调用此方法:
this.setReadOnlyForAll(false);
但是这种方法工作起来很慢。有人知道如何提高速度吗?谢谢!
最佳答案
根据 Wilk 的建议(使用 ExtJS 4.1.1a),我在表单(带有嵌套表单)上将 ~90 个字段设置为只读时仍然遇到了 9 秒的延迟。
为了进一步改进这一点并将时间从 9 秒减少到 < 1 秒,我添加了对 Ext.suspendLayouts() 和 Ext.resumeLayouts() 全局变量的调用,以允许框架对组件布局进行批处理。
Ext.define('My.Panel', {
extend: 'Ext.form.Panel',
setReadOnlyForAll: function(readOnly) {
Ext.suspendLayouts();
this.getForm().getFields().each(function(field) {
field.setReadOnly(readOnly);
});
Ext.resumeLayouts();
}
});
关于javascript - Extjs 即时为表单上的所有字段设置只读,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12895606/