2012-01-26 5 views
2

私はExtjs 4.0.7を使用しており、comboboxの選択されたオプションのcomboboxformPanelからsubmitfieldValueに取得するのが苦労しています。Extjs 4でコンボボックスのfieldValueを送信するにはどうすればよいですか?

これまでのところ、これは通常、hiddenName設定オプションを値として送信したい値に設定することで実現できます。 htmlの隠しフィールドを使うのと同じですが、今度はhiddenNameオプションが明らかな代替手段なしにドキュメントから削除されているようです。

したがって、の値をExtjs 4に入力してformPanelを送信するにはどうすればよいですか?

これは私がコンボボックスのいずれかを定義する私のアプリケーションからスニップです:

xtype: 'combobox', 
     name: 'shift', 
     hiddenName: 'shiftid', 
     id: 'shiftCombobox', 
     fieldLabel: 'Shift', 
     labelWidth: 30, 
     width: 130, 
     margin: '0 5', 
     cls: 'shift', 
     store: shiftStore, 
     autoSelect: true, 
     queryMode: 'local', 
     displayField: 'name', 
     valueField: 'objectid', 
     autoSelect: true, 
     handler: function() { 
      //changeShift(); 
     } 

と、これはshiftStoreが使用するモデルです。

Ext.define('shiftModel', { 
    extend: 'Ext.data.Model', 
    fields: [ 
     {name: 'objectid', type: 'int'}, 
     {name: 'name', type: 'string'} 
    ] 
}); 
+0

私は解決策を見つけましたが、まだ私自身の質問に答えることはできません。 – Wertisdk

+0

http://stackoverflow.com/a/5724225/6294には解決策がありますが、投稿するものを制御するための堅実な方法を自由に投稿してください。 – Maggie

答えて

0

私はこのコードを忘れていました:

autoLoad: { 
     //The callback here is needed to fix a bug and set a default value in the combobox. 
     scope: this, 
     callback: function() { 
      var comboBox = Ext.getCmp("teamCombobox"); 
      var store = comboBox.store; 

      // set the value of the comboBox here 
      comboBox.setValue(store.getAt('0').get('name')); 
     } 
    } 

012にはcomboboxが更新されますのストアautoLoadは、ロード時にデフォルト値を使用します。 という名前をというdisplayValueに設定しました。私はこのようにそれを設定した後、対応するfieldValueに値を設定すると、私の場合にはフィールドがOBJECTID

と呼ばれ、それが動作します:

comboBox.setValue(store.getAt('0').get('objectid')); 

comboxはそれがfieldValue代わりにテキスト値の本物だ提出します私は間違って設定した。

私はまだこれを制御する方法があるかどうかを知りたいと思います。

関連する問題