2011-01-26 14 views
1

私はextJSとEditorGridPanelで少し問題があります。ExtJS:EditorGridPanelとComboBoxのトラブル

エディションの列を持つEditorGridPanelを作成しました。その1つは編集可能です。このコラムのエディタは正しく動作しますが、gridePanelでいくつかのフィールドをコンボでチェックすると、 "bad"という値が挿入されます。

これは私のコードです:たとえば

this.grid = new Ext.grid.EditorGridPanel({ 
    frame: true, 
    autoHeight: true, 
    id: 'grid-editMc', 
    clicksToEdit: 1, 
    loadMask: true, 
    columnLines: true, 
    store: this.getStore(), 
    sm: selmode, 
    cm: new Ext.grid.ColumnModel({ 
     columns: [{ 
      header: 'Преподаватель', 
      css: 'vertical-align:middle;', 
      dataIndex: 'teacher', 
      sortable: false, 
      editor: this.teacherEdit() 
     }], 

     defaultSortable: true 
    }), 
}) 

、私はrecord: id:4, teacher:'Mark'を持って店に。グリッドセル内のコンボを変更すると、4が挿入されます( 'Mark'ではなく)。私はセルの値 'id'とテキスト 'teacher'を持っていたい。

答えて

1

あなたのコンボボックスにはレンダラーが必要です。列モデルに

[ 
     { 
      header: 'Преподаватель', 
      css:'vertical-align:middle;', 
      dataIndex: 'teacher', 
      sortable: false, 
      editor: this.teacherEdit(), 
       renderer:teacherRenderer 

     } 
    ] 

は、あなたが値で渡されるために必要な値を返すコンボボックスでアイテムレンダラーを追加します。ここで定数を返す代わりに、レコードのフィールドを取得するか、店舗を検索して表示する値を取得することができます。

var teacherRenderer = function(value,metaData,record){ 
     // try record.data.teacher here 
     return "displayValue" 

}