0

FormPanel を配置してテキスト ボックス (TextBox) をラップする必要がある GWT アプリがあります。(スタイリングの問題を解決するため)

編集: スタイルの問題は、HTML タグ名でスタイルを配置するビルド前のスタイル シートを使用しているformため、スタイルを読み取ることができるように、いくつかのコンポーネントをラップするタグを配置する必要があることです!

問題は、KeyPress イベントで、ページに読み込みが表示されることです。結果は、クライアントとサーバーのトリップが発生していないかのように ajaxaly を返します。

問題は、サーバーへのこのトリップを削除する方法です。

注:コンポーネントをフォームパネルにラップしているだけで、プロパティを設定していません:

FormPanel formPanel = new FormPanel();
CaptionPanel captionPanel = new CaptionPanel();
formPanel.add(captionPanel);
captionPanel.add(horizontalPanel);
verticalPanel.add(formPanel);

ありがとう。

4

2 に答える 2

1

あなたの質問から、サーバーへのトリップの原因が明確ではありません。しかし、これを引き起こしているのが FormPanel である場合は、FormPanel のインスタンス化を次のように変更します。

FormPanel formPanel = new FormPanel() {
    public boolean onFormSubmit() { return false; }
};

これは、フォームが送信されないようにする次の html と同等である必要があります。

<form onsubmit="return false">

これで問題が解決しない場合は、さらにデバッグを行って、サーバーが呼び出されている場所を確認する必要があります。これには、FirefoxのTamper Dataプラグインが役立つ場合があります。

于 2011-02-15T21:00:14.913 に答える
1

FormPanel の要点は、classis HTML スタイルの form submit を作成することです。フォームの送信を必要とするサーバーとの相互運用性を実現するために使用する必要があります。

「スタイルの問題」を解決するためだけに FormPanel を使用しないでください。

OTOH、サーバーから AJAX スタイルのデータを取得する必要がある場合は、http://code.google.com/webtoolkit/doc/latest/tutorial/JSON.html#http を読んでください。

于 2011-02-15T12:02:40.643 に答える