2012-02-07 2 views
3

Интересно, почему разработчики ExtJS решили удалить метод reload() в API-интерфейсе ExtJS 4 Store. Я думаю, что это плохое решение.ExtJS 4: Как перезагрузить сетку с тем же параметром

Вот моя проблема. Я использую следующий код для инициализации магазина сетке в:

store.load({ 
    params: { 
     paramName: dynamicParameter 
    } 
}); 

УВЕДОМЛЕНИЕdynamicParameter переменной в коде выше.

Затем, если я удалю некоторые записи из сетки, мне нужно перезагрузить магазин.

Проблема: сегмент кода, который перезагружает магазин, не должен знать значение dynamicParameter.

Код для удаления записей, как это:

function deleteGridItems(grid, deleteUrl){ 
    // get selected rows 
    var records = grid.getSelectionModel().getSelection(); 

    // ...... (codes to send request for deletion is ignored) ...... 

    if(success){ 
     grid.getStore().reload(); 
    } 
} 

К сожалению, grid.getStore().reload() выше будет ошибка, потому что в ExtJS 4 reload() функция больше не существует.

Так как перезагрузить магазин с тем же параметром ??

спасибо.

ответ

2

Если я не ошибаюсь, функция load() теперь выполняет то же самое, что и reload(). Попробуй.

вам необходимо установить прокси дополнительные Params вместо указания его каждый раз на нагрузке():

http://www.sencha.com/forum/showthread.php?127673-Reload-Store-in-EXT-JS-4 посмотреть

+0

Я пробовал 'нагрузки () '. Но он не представляет 'dynamicParameter'. –

+0

Вы можете передавать параметр каждый раз, когда вы вызываете нагрузку, или это не опция? –

+0

проверить обновленный ответ, он должен помочь –

0

Также отметим, что Ext JS не появляется, чтобы проверить перед загрузкой ли магазин уже Загрузка данных. Я не уверен, почему это так, но это можно устранить, переопределив метод load() в Store или TreeStore.

load: function(options) { 
    // Loading quickly will cause data in the panel to break 
    if (!this.isLoading()) { 
     this.callParent(arguments); 
    } 
}, 

я не испытывал проблем с сетками, но с деревьями, если нажать на кнопку обновления очень быстро вы иногда получаете сообщение об ошибке и разрывы структуры дерева:

Uncaught TypeError: Cannot read property 'internalId' of undefined