2013-05-22 5 views
0

Я создал образец gxt-виджета, который отображает список записей из db.GXT - Как обновить данные сетки, нажав Refresh on PagingToolbar

Когда я нажимаю кнопку обновления, я бы ожидал, что данные сетки будут перезагружены, ну это не так, я думал, что могу просто добавить прослушиватель событий, а затем вручную вызвать grid.getStore().getLoader().load() Вопрос в том, как мне получить доступ к «Обновить» 'или кнопку на панели инструментов, чтобы я мог прикрепить к ней событие.

Пожалуйста прилагается изображение для иконки обновления Я хочу, чтобы обрабатывать и фрагмент кода ниже: enter image description here

private PagingToolBar toolBar; 
private NumberFormat currency; 
private PagingLoader<PagingLoadResult<ModelData>> loader; 
private PagingModelMemoryProxy proxy; 
private ListStore<PlayerDTO> store; 


proxy = new PagingModelMemoryProxy(null); 
loader = new BasePagingLoader<PagingLoadResult<ModelData>>(proxy); 
loader.setRemoteSort(true);   
store = new ListStore<PlayerDTO>(loader);    
toolBar = new PagingToolBar(10); 
toolBar.bind(loader);    
loader.load(0, 10); 

Это, как я загрузить прокси из моего Rpc обратного вызова

final AsyncCallback<List<PlayerDTO>> getPlayersCallback = new 

AsyncCallback<List<PlayerDTO>>() { 
       public void onFailure(Throwable arg0) {   
        arg0.printStackTrace(); 
        } 
       public void onSuccess(List<PlayerDTO> arg0) {   
        proxy.setData(arg0) ;  
        loader.load(0, 10);     
       } 
      }; 
    service.getPlayers(getPlayersCallback); 

Спасибо за ваше время ,

Бабаджидский принц.

ответ

0

Кнопка обновления вызывает loader.load() уже, поэтому, если она не работает, другая тоже не будет. Поскольку вы используете PagingModelMemoryProxy, я предполагаю, что вы хотите сделать что-то большее, чем просто loader.load(), поскольку loader.load() просто разговаривает с этими локальными данными и не делает обратный вызов реальному сервер. Это то, что вы хотите сказать?

Я предполагаю, что на самом деле вы не хотите разговаривать с прокси-сервером памяти, но на сервере в случае обновления, поэтому loader.load() все равно ничего не даст вам.

Значок обновления является защищенным полем в PagingToolbar - это означает, что вы можете создать подкласс виджета и в onRender или так, добавить еще один слушатель провод в вашем конкретном поведении вместо вызова Loader.load(), который заменит данных в прокси-сервере, который вы используете.

+0

Спасибо @ColinAlworth, я просто подклассифицировал PagingToolbar как и предложил, есть неявный конструктор, который получает размер страницы, в нем я ухватился за кнопку обновления и добавил слушателя с событием onClick. Благодарю. –

0

PagingToolBar имеет кнопку обновления. При нажатии кнопки прокси-сервер обновления загрузит данные.

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