2013-05-31 4 views
1

Я работаю с ExtJS et Architect.Записать обновление за пределами сетки.

У меня есть панель инструментов вне моей сетки, и у меня есть кнопка «Обновить».

Когда я нажимаю на свою сетку для выбора, и после того, как я нажму кнопку «обновить» вне сетки, у меня есть ошибка: невозможно использовать loadRecord, потому что undefined.

Моего код:

ClickBtnParametresApplicatifsModifier: function(button, e, eOpts) { 
    var evaluation_edit = 'var edit = Ext.create(\'ModuleGestion.view.'+ElementsParametresApplicatifs['formulaires'][activeTabParametresApplicatifs]+'\');'; 
    eval(evaluation_edit); 


    var evaluation_grid = 'var grid = this.getGrid'+ElementsParametresApplicatifs['designations'][activeTabParametresApplicatifs]+'()'; 
    eval(evaluation_grid); 

    record = grid.getSelectionModel().getSelection(); 

    if(record) { 
     edit.down('form').loadRecord(record); 
    } 

}, 

Как это отличается от функции мыши и этих параметров: кнопки, е, eOpts и функции itemdblclick (на сетке) с Params магазином, где эти пары существует?

+1

Там нет абсолютно никакой необходимости использовать Eval подобное. Просто используйте конкатенацию строк, чтобы создать класс 'var x = Ext.create ('My.static.Bit' + dynamicStuff);' –

+0

это правда thanx, моя проблема не решена – VincentDA

+0

Предлагает вам прочитать документы, в частности, о возврате тип 'getSelection'. –

ответ

0

Не могли бы вы проверить, имеет ли запись элемент? возможно с помощью:

if(grid.getSelectionModel().hasSelection()){ 
    ... 
} 

Попробуйте также:

grid.getSelectionModel().getLastSelected() 
+0

Решение состоит в использовании индекса 0 массива записей: запись [0] – VincentDA