1

データベースから値を取得する単純な ComboBox を GXT で使用しています。

私が望むのは、ユーザーが ComboBox をクリック (展開) するたびに、データベース内の最新のエントリをチェックして再入力することです (変更されている場合)。

今、私は次のようなことをしています:

ProtocolProperties protocolProperties = GWT.create(ProtocolProperties.class);
final ListStore<ProtocolDto> protocolStore = new ListStore<ProtocolDto>(protocolProperties.id());

protocol = new ComboBox<ProtocolDto>(protocolStore, protocolProperties.name());

    protocol.addExpandHandler(new ExpandHandler() {
                @Override
                public void onExpand(ExpandEvent event) {
                    protocolStore.clear();

                    ProtocolDto emptyDto = new ProtocolDto();
                    emptyDto.setId(-1);
                    emptyDto.setName("None");
                    protocolStore.add(emptyDto);

                    AppEntryPoint.getLogbookdataservice().getAllProtocols(new AsyncCallback<List<ProtocolDto>>() {

                        @Override
                        public void onSuccess(List<ProtocolDto> result) {               
                            protocolStore.addAll(result);
                        }

                        @Override
                        public void onFailure(Throwable caught) {
                            // TODO Auto-generated method stub

                        }
                    });
                }
            });

これに答えるために時間を割いてくれた人に感謝します。

4

1 に答える 1

3

四角い車輪を再発明するのではなく、コンボボックスでの非同期サポートを検討する必要があります。

Sencha デモ - http://www.sencha.com/examples/#ExamplePlace:advancedcombobox

Stackoverflow - ここでも 1 つのアプローチについて説明します - GXT の動的自動提案コンボボックス

GXT フォーラム - http://www.sencha.com/forum/showthread.php?185967-ComboBox-doQuery-method-seems-not-working-with-Remote-Loader

于 2013-01-09T15:03:15.367 に答える