Перезагрузка данных в сетке GXT зависает - PullRequest
0 голосов
/ 16 января 2012

На основе примера демонстрации GXT 'Paging BeanModel Grid' я пытаюсь перезагрузить сетку, когда я сделал изменение в моем источнике данных.Я определил загрузчик так:

final BasePagingLoader<PagingLoadResult<ModelData>> loader = 
    new BasePagingLoader<PagingLoadResult<ModelData>>(proxy, new BeanModelReader());
loader.setRemoteSort(true);

Данные загружаются правильно.

Когда я:

loader.load();

Моя панель инструментов подкачки просто зависает и отключается,сетка тоже зависает и отображает то, что кажется маской загрузки

Я попытался добавить некоторые события для принудительной двойной перезагрузки без удачи:

grid.addListener(Events.Attach, new Listener<GridEvent<ModelData>>() {
    public void handleEvent(GridEvent<ModelData> be) {
        loader.load(); 
    }
});

Я также пытался использовать опцию переконфигурирования (store, cm) и тот же результат.

Любая помощь?

Спасибо, Джорди.

Ответы [ 2 ]

1 голос
/ 17 января 2012

Полоса загрузки неактивна, поэтому вы можете видеть, что она работает, и сетка также может иметь сообщение о загрузке.Работающий код - это сервер, который, вероятно, готовит элементы.

Установите сообщения регистрации в коде вашего сервера (возможно, сервлет RPC), в начале и в конце вызова, чтобы увидеть, сколько времени они занимаютбежать.Вероятно, именно там, где на самом деле происходит «зависание», основываясь на информации в вашем вопросе.

В этом браузере может также произойти пауза и после этого времени, но в этом случае круг загрузки будет остановлен.перемещение.

0 голосов
/ 23 января 2012

Для меня есть ошибка на контроллере сетки:

Детали кода:

private final BasePagingLoader<PagingLoadResult<ModelData>> loader;
private Grid<ModelData> grid;
[...]

public ListUsersView(RpcProxy<PagingLoadResult<UserTableEntryBean>> proxy) {
        // Create loader
        loader = new BasePagingLoader<PagingLoadResult<ModelData>>(proxy, new BeanModelReader());
        loader.setRemoteSort(true);

        // Create store
        store = new ListStore<ModelData>(loader);

        FlowLayout layout = new FlowLayout();
        layout.setMargins(new Margins(3, 0, 0, 0));
        this.setLayout(layout);

        final PagingToolBar toolBar = new PagingToolBar(50);
        toolBar.bind(loader);

        List<ColumnConfig> columns = new ArrayList<ColumnConfig>();
        columns.add(new ColumnConfig(UserTableEntryBean.Fields.username.name(), "Username", 100));
        columns.add(new ColumnConfig(UserTableEntryBean.Fields.email.name(), "E-mail", 200));
        ColumnConfig date = new ColumnConfig(UserTableEntryBean.Fields.creationDate.name(), "Creation date", 100);
        date.setDateTimeFormat(DateTimeFormat.getFormat("dd/MM/y"));
        columns.add(date);

        ColumnModel cm = new ColumnModel(columns);

        grid = new Grid<ModelData>(store, cm);

        grid.setLoadMask(true);
        grid.setBorders(true);
        grid.setAutoExpandColumn(UserTableEntryBean.Fields.creationDate.name());

        [...]
}

public boolean refreshTable() {
        return loader.load();
}
...