javascript - Extjs 即时为表单上的所有字段设置只读

标签 javascript extjs

我正在尝试编写为表单上的所有字段设置 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/

相关文章:

javascript - 当字符串以 "<"字符开头时,jQuery 正则表达式无法匹配

javascript - 在 Jquery 中读取分配给 Data- 的数组时出错。我正在使用 .data()

javascript - 所有字母字符或所有整数的测试字符串

javascript - 自动加载所有网格的加载存储

Extjs 5 hasMany vs field.reference

javascript - Ext JS,全局更改网格列配置默认值

javascript - Nodemailer - 在本地工作但不在生产环境中工作

javascript - React 导入组件名称冲突

javascript - Extjs 使用复选框模型将单个项目拖放到网格上

javascript - ExtJS + IE10脚本执行顺序问题