Как обновить TreeGrid в GWT?

Здравствуйте, друг, я разрабатываю приложение GWT, где я использую TreeGrid. Когда я использую обычную сетку, как в моем классе:

RpcProxy<ListLoadResult<GwtDatastoreAsset>> proxy = new RpcProxy<ListLoadResult<GwtDatastoreAsset>>() {

            @Override
            protected void load(Object loadConfig, AsyncCallback<ListLoadResult<GwtDatastoreAsset>> callback) {
                if (selectedDevice != null) {
                dataService.findAssets((LoadConfig) loadConfig, currentSession.getSelectedAccount().getId(), selectedDevice, callback);
                }
            }
        };

        loader = new BaseListLoader<ListLoadResult<GwtDatastoreAsset>>(proxy);
        loader.load();
        SwappableListStore<GwtDatastoreAsset> store = new SwappableListStore<GwtDatastoreAsset>(loader);
        assetGrid = new Grid<GwtDatastoreAsset>(store, new ColumnModel(configs));
        assetGrid.setBorders(false);
        assetGrid.setStateful(false);
        assetGrid.setLoadMask(true);
        assetGrid.setStripeRows(true);
        assetGrid.getView().setAutoFill(true);
        assetGrid.getView().setEmptyText(MSGS.assetTableEmptyText());
        assetGrid.disableTextSelection(false);

В этом классе в моем методе обновления я просто делаю assetGrid.getStore(). GetLoader(). Load(); и это все, но с TreeGrid я не могу так поступить. Это мой метод с TreeGrid:

 AsyncCallback<List<GwtTopic>> topicsCallback = new AsyncCallback<List<GwtTopic>>() {

            @Override
            public void onSuccess(List<GwtTopic> topics) {
                store.add(topics, true);
                topicInfoGrid.unmask();
            }

            @Override
            public void onFailure(Throwable t) {
                FailureHandler.handle(t);
                topicInfoGrid.unmask();
            }
        };
        dataService.findTopicsTree(currentSession.getSelectedAccount().getId(), topicsCallback);
        topicInfoGrid = new TreeGrid<GwtTopic>(store, new ColumnModel(configs));
        topicInfoGrid.setBorders(false);
        topicInfoGrid.setStateful(false);
        topicInfoGrid.setLoadMask(true);
        topicInfoGrid.mask("Loading");
        topicInfoGrid.setStripeRows(true);
        topicInfoGrid.getView().setAutoFill(true);
        topicInfoGrid.getView().setEmptyText(MSGS.topicInfoGridEmptyText());
        topicInfoGrid.disableTextSelection(false);

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

2 ответа

Попробуйте добавить это после метода onSuccess:

topicInfoGrid.getTreeView().refresh(true);

или это если обновление не работает

 topicInfoGrid.reconfigure(store, cm, treeColumn);

TreeGrids имеет свой собственный загрузчик, который называется TreeLoader вместо использования загрузчика магазина: https://docs.sencha.com/gxt/3.x/javadoc/com/sencha/gxt/widget/core/client/treegrid/TreeGrid.html

Другие вопросы по тегам