実際、CheckBoxGroup の動的作成についてはインターネット上にたくさんの情報があります。なぜこの記事を書いたかというと、ext3 にはまだ落とし穴があるからです。
Extjs3.0 の CheckboxGroup は、デフォルトでは項目を動的に追加できません。 Ext.form.Field を継承していますが、コンテナに似ています。
CheckboxGroup 構成で処理される項目は、対応するパネルを生成します。この処理プロセスは 1 回だけであるため、CheckboxGroup を動的に追加することは困難です。
var checkBoxGroupTypes = new Ext.form.CheckboxGroup({ xtype:'checkboxgroup', fieldLabel:'请选择对应电厂', columns:9, width: 600, name:'plantGroup' }); /*这里采用jquery的ajax请求,为解决同步异步问题 * 这里async 必须设置成false * 否则页面加载时,无法将动态创建的checkBoxGroup添加到容器中*/ $.ajax({ url : plantGroupUrl, method : 'POST', async : false, cache : true, success : function(response){ var res = response; var resLen = res.length; var items = []; for(var i = 0;i<res.length;i++){ var data = res[i]; var chb = {boxLabel:data.BRIEFNAME,name:data.CODE,inputValue:data.CODE,checked:true}; items.push(chb); } checkBoxGroupTypes.items = items; checkBoxGroupTypes.doLayout(); } });
/*这里采用jquery的ajax请求,为解决同步异步问题 * 这里async 必须设置成false * 否则页面加载时,无法将动态创建的checkBoxGroup添加到容器中*/
実際、ここで注目すべきはこのコメントです。単純ではありますが、この問題は昨夜私に頭を悩ませたので、単に考えていませんでした。インスピレーションで目が覚めました。
以下はオンライン方法とは異なり、作成したCheckBoxGroupをパネルに追加します。
りー
以上がCheckBoxGroup のインスタンスの動的作成についての詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。