3

ページのマークアップには

<div wicket:id="stepPanel" />

その中にタグがあり、ページが最初にロードされたときにうまく機能します。

add(new MyFirstPanel("stepPanel"));

正常に動作します。しかし、その後、Ajax イベントをトリガーして再描画を要求すると、

addOrReplace(new MySecondPanel("stepPanel"));
target.add(MyPage.this);

次のエラーが表示されます

Last cause: Failed to find markup file associated. MyFirstPanel: [MyFirstPanel [Component id = stepPanel]]

間違ったマークアップを見つけようとして (MySecondPanel のマークアップを探す必要があります)、以前に成功したにもかかわらず失敗することに注意してください。

リフレクションを使用してパネルをインスタンス化していますが、ここで問題になる可能性はありますか? 例外はスローされません。

Anwser: 実際には別のものでした - 私の AjaxSubmitLinks の 1 つが、マークアップに配置されなくなったフォームへの参照を持っていることに気付きました。

4

2 に答える 2

1

パネルを置き換えた後に MyPage を追加すると、MyPage が再レンダリングされます。パネルを交換する方法の良い例がここにあります

于 2013-11-12T08:48:08.260 に答える
0

はい、リフレクションを介してパネルを呼び出すことができます。ここでイベントで何をしようとしているのかはっきりとはわかりませんが、必要に応じて、パネルを添付AjaxSelfUpdatingTimerBehaviorして、指定された期間にこのコンポーネントを更新する期間を定義できます。

役に立つことを願っています。

于 2013-11-13T05:04:00.343 に答える