在组合框上设置商店动态

时间:2014-03-28 06:52:11

标签: rest extjs

您好, 我有两个组合框。第二个组合框的值取决于第一个组合选择。用户确实选择了第一个组合,然后相应地设置了第二个商店。

以下是我的两个Combos:

组合1

items:[
       {
          xtype : 'combo',
          name : 'cmbSATopFacility',
          labelStyle : 'color: black; font-weight: bold; width: 250px; padding: 10;',
          labelSeparator : "",
          id : 'cmbSATopFacility',
          width : 250,
          fieldLabel : 'Top MGMT Entity',
          triggerAction : 'all',
          store : Ext
            .create(
              'Ext.data.Store',
              {
                id : 'store',
                fields : [
                  {
                    name : 'id',
                    type : 'integer',
                  },
                  {
                    name : 'name'
             } ],
                 remoteGroup : true,
                 remoteSort : true,
                 proxy : {
                   type : 'rest',
                   url : 'pmsRest/facilities?sub_facility_id=-3',
                     reader : {
                       root : "facilityMaster",
                       idProperty : 'id'
             }
                 },
             autoLoad : true
        }),
        displayField : 'name',
        valueField : 'id',
        multiSelect : false,
        typeAhead : true,
          listeners : {
            change : function(combo) {
              /// code to convert GMT String to date object
              n();
              Ext.getCmp('cmbSAMedFacility').getStore().load();
            }
          },
          allowBlank : false,
          //enableKeyEvents : true,
    },

组合2

{
                                                            xtype : 'combo',
                                                            name : 'cmbSAMedFacility',
                                                            labelStyle : 'color:black;font-weight:bold;width:250px;padding:10;',
                                                            labelSeparator : "",

                                                            id : 'cmbSAMedFacility',
                                                            width : 250,
                                                            fieldLabel : 'Institution',
                                                            triggerAction : 'all',
                                                            store : medfacility,
                                                            displayField : 'name',
                                                            valueField : 'id',
                                                            multiSelect : false,
                                                            typeAhead : true,
                                                            //disabled: true,
                                                            listeners : {
                                                                    click : function(combo) {
                                                                    alert("hjdfhcsdj");
                                                                    n();
                                                                    Ext.getCmp(this).getStore().load();

                                                                    }

                                                                },
                                                            allowBlank : false,
                                                            //enableKeyEvents : true,

                                                        },
                                                    ]

设置商店的代码     var medfacility = loadFacility();

function loadFacility(){
    topApp = Ext.getCmp('cmbSATopFacility').getValue( );
    alert(topApp);
    var urL = 'pmsRest/facilities?sub_facility_id='+topApp ;
    alert(urL);
    var store = Ext.create('Ext.data.Store', {
                        id : 'store',

                            fields : [
                                    {
                                        name : 'id',
                                        type : 'integer',
                                    },
                                    {
                                        name : 'name'
                                    } ],
                            remoteGroup : true,
                            remoteSort : true,
                            proxy : {
                                type : 'rest',
                                url : urL,


                                reader : {

                                    root : "facilityMaster",
                                    idProperty : 'id'
                                }

                            },
                            autoLoad : true
                        });
                        return store;
        }   

我尝试get values in the second combo,但它没有用。

2 个答案:

答案 0 :(得分:0)

WE CAN USE ONLY 
listeners : {                                           change : function(combo) { Ext.getCmp('cmbSAMedFacility').bindStore(n());}},

答案 1 :(得分:0)

我认为您需要为第二个组合框描述商店,但没有数据(空数组) 并在需要时使用loadData method填充该商店的数据。

希望这有帮助。