0

私は extjs4 を使用しています。JSON オブジェクトに基づいてチェック ボックス グループを追加する必要があります。

JSON

{"Provider":[{"id":3,"name":"Beta House","npi":0,"taxId":0,
    "address":{
        "state":{"id":"1","stateName":"Alabama","code":"AL"},
    "zipcode":0,"country":"USA","email":"beta@gmail.com"},
"type":"CP","LabProvider":[],"ListOfProvider":[]}]}

ExtJs Ext.define('providerList', { extends: 'Ext.data.Model', fields: ['id','name'] });

            var provider = Ext.create('Ext.data.Store', {
                model: 'providerList',
                autoLoad: true,
                proxy: {
                    type: 'ajax',
                    url : url+'/lochweb/loch/clinicalProvider/getAll',
                    reader: {
                        type: 'json',
                        root: 'Provider'
                    }
                }
            });

パネル

 var checkboxconfigs = [];
                provider.each(function(record) { 
                    checkboxconfigs.push(
                            {                   
                                boxLabel: 'record.id', 
                                name: 'record.name'
                            }) 
                    });


var checkboxes = new Ext.form.CheckboxGroup({  
            fieldLabel:'Providers',  
            columns:2,  
            items:checkboxconfigs
             });

var patientProvider = new Ext.FormPanel({       
                renderTo: "patientProvider",
                frame: true,                 
                title: 'Association',
                bodyStyle: 'padding:5px',           
                width: 500,
                items: [{
                    checkboxes                               
                        }],                     
            });

フォームにチェック ボックスがありません。JSON ストアからチェックボックスを設定する方法

4

2 に答える 2

0

itemsの子として使用する前に、配列を定義できますcheckboxes。配列の各要素はitems、ストアの各レコードに基づいて作成されます。

var items = [];
provider.each(function(record) { items.push({boxLabel: 'up-to-you', name: 'up-to-you'}) }, );
var checkboxes = new Ext.form.CheckboxGroup({  
        fieldLabel:'Providers',  
        columns:2,  
        items:items
         });

ここで、各チェックボックスのboxLabelnameを決定できます(の属性はrecordプレフィックス、サフィックスとして使用できます...)

于 2012-04-30T06:02:39.037 に答える
0

いくつかのヒント:

パネル項目の定義で、次のようにチェックボックスの周りの {} を削除します。

                items: [ checkboxes ]

次に、チェックボックスを設定するときにストアが利用可能であることを確認してください。

パネルがレンダリングされた後にストアが利用できるアプリで同様の状況があります。パネルには、次のようなチェックボックスのリストが動的に入力されます。

    panel.add(new Ext.form.CheckboxGroup({
        columns: 1,
        vertical: true,
        items: checkItems
    }));
    panel.doLayout();

編集:別のヒント:

このコードからクォート '' を削除します。

{                   
    boxLabel: 'record.id', 
    name: 'record.name'
}

または、すべてのラベルが「record.id」になります

于 2012-04-30T10:45:35.443 に答える