2011-01-26 5 views
1

У меня мало проблем с extJS и EditorGridPanel.ExtJS: EditorGridPanel и проблема с ComboBox

Я создал EditorGridPanel с колонками изданий: один из них редактируемый. Редактор этого столбца работает правильно, но когда я проверяю какое-то поле в combo на gridePanel, он вставляет «плохое» значение.

Это мой код:

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 (не «Марк»). Я хочу иметь значение ячейки «id» и текст «учитель».

ответ

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" 

}

Смежные вопросы