2012-05-31 2 views
0

Мы недавно переключились с ExtJS 3.2 на 3.4 и обнаружили, что сетки с моделью выбора флажка перестают работать. Оказывается, что такая конфигурация не имеет больше:Как избежать дублирования спецификации модели выбора в сетях ExtJS?

var gridConfig = { 
    xtype: 'grid',    
    store: myStore, 
    columns:[ 
    new Ext.grid.CheckboxSelectionModel(), 
    { 
    id: 'Name', 
    header: 'Inland Carrier', 
    dataIndex: 'Name' 
    }], 
    sm: new Ext.grid.CheckboxSelectionModel({ 
    checkOnly: true 
    }) 
}; 

Вместо выбора модели объекта должен быть создан один раз, а затем передаются как в column коллекции и sm собственности.

Проблема в том, что у нас очень длинный объект конфигурации со множеством сеток. Ранее модель выбора была указана локально в соответствии с приведенным выше образцом. Но теперь мы должны выделить переменную для каждого объекта модели выбора, изобрести уникальное имя для нее и сохранить эти переменные вдали от места, где они используются. Это очень неудобно.

Можно ли как-то указать модель выбора в одном месте? Или, возможно, создать его в одном инициализаторе свойств и ссылаться на этот объект во втором месте?

ответ

0

вы можете добавить sm к cm после инициализации сетки.

т.е.

var gridConfig = { 
    xtype: 'grid',    
    store: myStore, 
    columns:[{ 
    id: 'Name', 
    header: 'Inland Carrier', 
    dataIndex: 'Name' 
    }], 
    sm: new Ext.grid.CheckboxSelectionModel({ 
    checkOnly: true 
    }) 
}; 
var grid = new Ext.grid.GridPanel(gridConfig); 
grid.getColumnModel().config.unshift(grid.getSelectionModel()); 
Смежные вопросы