2

私の場合、グリッドの選択された行からデータを取得する編集フォームがあります。このフォームには、オートコンプリートプロパティを使用している「コンボボックス」タイプのフィールドがいくつかあります。

    xtype: 'combobox',
    store: 'Paciente',
    forceSelection: true,
    typeAhead: true,
    pageSize: 10,
    fieldLabel: 'Paciente',
    name: 'paciente_id',
    valueField: 'id',
    displayField: 'nome',
    allowBlank: false,
    afterLabelTextTpl: required

これは私の店です:

Ext.define('App.store.Paciente', {
  extend: 'Ext.data.Store',
  model: 'App.model.Paciente',
  pageSize: 10,
  proxy: {
      type: 'rest',
      format: 'json',
      url: 'pacientes',
      reader: {
          root: 'pacientes',
          totalProperty: 'totalCount'
      }
  }
});

コンボを使用すると機能します。しかし、グリッドで線を選択すると、すべてのフィールドが塗りつぶされますが、コンボは塗りつぶされません。

gridSelectionChange: function(model, records) {
    if (records[0]) {
        this.getForm().load(records[0]);
    }
},

フォームが読み込まれたときに、このコンボを正しく入力するにはどうすればよいですか?

アップデート1:作業コード

コンボボックスごとに手動でこれを行う必要がありました。それは自動的に方法だと思いました。

if (records[0]) {
        this.getForm().loadRecord(records[0]);

        //updating current value for combo paciente 
        this.getStore('Paciente').add({nome: records[0].get('nome'), id: records[0].get('id')});
        this.getCombopaciente().select(records[0].get('paciente_id'));

        //updating current value for combo XYZ...
    }
4

1 に答える 1

1

デフォルトでは、コンボロードは拡張時にのみ保存されます。あなたの場合、表示するデータはありません。ストアロードメソッドを手動で呼び出すか、コンボ構成で自動ロードプロパティを設定できます。

于 2012-11-26T10:29:09.110 に答える