3

再利用可能なパネルを用意して、ページに追加しました。私のページのフォームには2つのドロップダウンの選択肢があります。https://cwiki.apache.org/WICKET/dropdownchoice-examples.html#DropDownChoiceExamplesのajaxの例を使用しています-2 つのDDCが正常に機能することに注意してください(一方の値を変更してから、もう一方の値を非表示/再表示します。ただし、私の場合は機能しませんpanel。imusing:

private final MyPanel panel1 = new MyPanel ("MyPanel"); 
panel1.setOutputMarkupPlaceholderTag(true); 

... DDC1 ajax動作メソッドの場合:

onUpdate(AjaxRequestTarget target) { ...
    DDC2.setVisible(true); 
    panel1.setVisible(true); 
}

非表示/元に戻すにはフォームを送信する必要がありpanel1ます。DDC2フォームを送信しない場合と同じように機能させるにはどうすればよいですか?

4

1 に答える 1

6

あなたが必要です:

panel1.setOutputMarkupId(true); 

The

panel1.setOutputMarkupPlaceholderTag(true);

あなたが持っているものは、実際にはAjaxが機能するために常に必要なわけではありませんが、クライアント側から駆動されるリフレッシュを行うために必要です。そして、それは私の知識に何も害を及ぼすことはありません...

動作では、ターゲットに更新するように指示する必要があります。

onUpdate(AjaxRequestTarget target) { ...
    DDC2.setVisible(true); 
    panel1.setVisible(true);
    target.addComponent(DDC2);
    target.addComponent(panel1); 
}
于 2012-10-24T15:31:28.493 に答える