2016-10-04 9 views
0

ページビュー可能なリストビューを2つのコンポーネント、1つはテキストフィールド、もう1つはドロップダウンリストを追加しました。検証のための通常の方法は、フィードバックパネルを追加することです。しかし、同じメソッドがグリッドで使用されている場合、wicket:id = "xy"のフィードバックコンポーネントが既に解析されているというエラーが表示されます。 これらのコンポーネントを検証する方法はありますか?どこかのコードで JAVA CODEHTML CODEjava wicketでpageablelistviewのテキストフィールドを検証する方法

+1

"同じ方法"と言ったら、どんな方法を指していますか?さらに、フィードバックパネルやフォームコンポーネントのインスタンス作成方法や、それらの間の関係に関連するその他のコードを説明するコードスニペットを提供できますか? – WiseTree

+0

@WiseTree説明に自分のhtmlとjavaコードを追加しました – ExTincT

+0

wicketが生成するエラーも提供できますか? – WiseTree

答えて

0

(例えば、あなたなどForm#onSubmit()Form#onError()、あなたのAjaxの動作のいずれかを、上書き)あなたはこのコンポーネントがすでに以前に追加されているにもかかわらず、再び改札ID「FeedbackSubQuestions_」でコンポーネントを追加します。以下のような何か:

改札で
public class MyPage extends WebPage { 

    public MyPage() { 
     this.add(new FeedbackPanel("FeedbackSubQuestions_")); 
     this.add(new Form<Void>("myForm"){ 
      @Override 
      protected void onError() { 
       // This call the produce the error as the feedback component is already in the component hierarchy 
       MyPage.this.add(new FeedbackPanel("FeedbackSubQuestions_")); 
      } 
     }); 
     ... 
     Adding all the form components with validation and their ajax behaviors 
     ...   
    } 
} 

、あなたがコンポーネント階層を構築したら、ページとのその後の相互作用はもうそれのいずれかを再初期化する必要はありません。つまり、フィードバックパネルを追加してフィードバックを表示すると、このパネルを再度追加する必要はありません。表示されるエラーがある場合(フォームの検証に失敗した場合やComponent#error(String)が手動で呼び出された場合など)、フィードバックパネルが再度レンダリングされると自動的にフィードバックが返されます(例:ajaxレスポンスに追加する、フォーム提出プロセスの一部として再レンダリングされます)。

+0

私は新しい行を追加するたびにtextbox.soを表示するために編集可能なグリッドを使用しています。エラーがポップアップします。フィードバックパネルがグリッドで許可されているかどうかはわかりません。 – ExTincT

+0

'GridView'を参照している場合はyesです。 – WiseTree

関連する問題