Forms ExtJS4-使用级联禁用窗体的子视图

Forms ExtJS4-使用级联禁用窗体的子视图,forms,extjs,extjs4.2,Forms,Extjs,Extjs4.2,你好。我正在构建一个web应用程序。在我的web应用程序中有一个部分,我让用户在一个面板中填写多个表单。到目前为止一切正常,但是,我想做的是,当用户查看他的应用程序时,所有字段都被禁用,因此他将无法编辑它们 我的计划是获取面板并使用cascade获取所有子视图并禁用它们。到目前为止,我尝试通过执行以下操作重置所有表单中的所有字段: console.log("borrower view details selected"); Ext.getCmp('borrowerRightPanel1').c

你好。我正在构建一个web应用程序。在我的web应用程序中有一个部分,我让用户在一个面板中填写多个表单。到目前为止一切正常,但是,我想做的是,当用户查看他的应用程序时,所有字段都被禁用,因此他将无法编辑它们

我的计划是获取面板并使用cascade获取所有子视图并禁用它们。到目前为止,我尝试通过执行以下操作重置所有表单中的所有字段:

console.log("borrower view details selected");

Ext.getCmp('borrowerRightPanel1').collapse();
Ext.getCmp('borrowerRightPanel1').expand();
Ext.getCmp('borrowerRightPanel1').getLayout().setActiveItem(0);

//disable form fields here

Ext.getCmp('borrowerRightPanel1').items.filterBy(function(c){
   if(c.getXType()==='form'){
       c.getForm().reset();
   }
});
从这里,我可以尝试两件事:

1使用级联,当XType不等于form时,我禁用它

2我获取表单并执行类似c.getForm.getAllChildren.disable的操作

我试过第一种解决办法,但没有用。我做了这样的事情:

console.log("borrower view details selected");

Ext.getCmp('borrowerRightPanel1').collapse();
Ext.getCmp('borrowerRightPanel1').expand();
Ext.getCmp('borrowerRightPanel1').getLayout().setActiveItem(0);

//disable form fields here

Ext.getCmp('borrowerRightPanel1').items.filterBy(function(c){
   if(c.getXType()!='form'){
       c.disable();
   }
});
然而,它似乎不起作用。我对ExtJS非常陌生,所以我对可用的函数不太熟悉


有人知道如何执行我的一个或两个解决方案吗?哪一个更有效?谢谢你的帮助

好的,经过进一步研究,我发现了这个解决方案:

c.query('.component').forEach(function(c){c.setDisabled(true);});
您可以将.component更改为其他X类型,如.button或.field等