2012-08-29 63 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