2012-08-29 64 views
1

我有一個窗口,其中有一個checkboxGroup。我想要在按下窗口上的「應用」按鈕時保存checkboxGroup中的所有選擇。到目前爲止,我有Extjs 4在父窗口關閉時保存checkboxGroup的狀態

   xtype: 'checkboxgroup', 
        stateful: true, 
        stateID: 'checks', 
        getState: function() { 
          return { 
            items: this.items 
          }; 
        }, 
        stateEvents: ['close'], 
        columns: 2, 
        vertical: false, 
        items: [...] 

我敢肯定,我stateEvents是錯的,我會使用,以表明我希望在關閉父窗口要保存的狀態是什麼?

我有這行我app.js文件的發射功能,之前,我創建了頂視圖

  Ext.state.Manager.setProvider(Ext.create('Ext.state.CookieProvider')); 

謝謝!

回答

3

顯然複選框組的狀態不包括複選框http://docs.sencha.com/ext-js/4-0/#!/api/Ext.form.CheckboxGroup-method-getState

我必須通過一個會話變量和父窗口的事件中去值..

var configPopup; 
var configForm = Ext.create('Ext.form.Panel', { 
    id: 'form-config', 
    name: 'form-config', 
    frame: true, 
    layout: 'anchor', 
    items: [ 
     { 
     border:0, 
     anchor: "100%", 
     xtype: 'checkboxgroup', 
     fieldLabel: 'Include options', 
     labelWidth: 100, 
     id: 'opt_relation', 
     labelStyle: 'margin-left:10px;', 
     items: [ 
      {   
     boxLabel: 'relation 1', 
     name: 'opt_relation', 
     inputValue: 'rel1', 
     checked: true 
     }, 
     { 
     boxLabel: 'relation 2', 
     name: 'opt_relation', 
     inputValue: 'rel2', 
     checked: true 
     }, 
     { 
     boxLabel: 'relation 3', 
     name: 'opt_relation', 
     inputValue: 'rel3', 
     checked: true 
     } 
    ] 
    }   
    ], 
buttons: [ 
     { 
     text: 'Close', 
    handler: function() { 
     configPopup.hide(); 
    } 

    }] 
}); 


configPopup = new Ext.Window({ 
    id:'configPopup', 
    title: 'Chart configuration', 
    layout  : 'fit', 
    width  : 390, 
    closeAction :'hide', 
    plain  : true, 
    listeners: { 
    show: function() { 
     var v = Ext.state.Manager.get("optRelation"); 
     if (v) {   
     Ext.getCmp('opt_relation').setValue(v); 
     } 
    }, 
    hide: function() { 
     var v = Ext.getCmp('opt_relation').getValue();  
     Ext.state.Manager.set("optRelation",v); 
    } 
    }, 
    items : [ 
    configForm 
    ] 
}); 
+0

謝謝!我最終以不同的方式設計我的應用程序,但任何人都可以確認此方法有效嗎? – alex9311