1

その中にcheckboxGroupがあるウィンドウがあります。ウィンドウの「適用」ボタンが押されたときに、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'));

ありがとうございました!

4

1 に答える 1

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
  ]
});
于 2012-11-24T19:08:41.037 に答える