maga****@hagan*****
maga****@hagan*****
2011年 9月 12日 (月) 20:42:11 JST
船田です。 明確な回答ありがとうございます。 おかげさまでスッキリいたしました。 > たけうちです。 > > ListViewおよびDataViewに対応するHTML上のタグが無いからです。 > > WicketのAjaxによる更新は、addComponent()したコンポーネントの > HTMLのタグを丸ごと新しいものに置き換えるということをJavascript側で > 行っています。そのため、生成されたHTMLでタグが存在しないものに対しては > 更新がかけられません。たとえば、setRenderBodyOnly(true)とすると > そのコンポーネントがAjax更新できないのはそのためです。 > > ListViewで指定するwicket:idは、列挙されるListItemに対応してしまうため > ListViewそのものに対応するタグがなくなります。 > > -- > たけうち > @chimerast > > On 2011/09/11, at 0:19, maga****@hagan***** wrote: > > > 船田です。 > > > > AbstractRepeaterを継承したListViewやDataViewなどをAjaxで更新したい場合に > > > > AjaxRequestTargetでaddCommponentで追加した場合に > > > > java.lang.IllegalArgumentException: Component xxxx has been added to the target. This component is a repeater and cannot be repainted via ajax directly. Instead add its parent or another markup container higher in the hierarchy. > > > > となります。 > > > > WebMarkupContainerなどでAbstractRepeaterを内包するようにしてWebMarkupContainer > > を更新すれば > > 回避できるのですが、意図が見えず、しっくりときません。 > > > > PageクラスがAjaxで更新できないのはわかるのですが > > AbstractRepeaterを直接Ajaxで更新不可としているは > > なぜでしょうか? > > > > ご教授いただけると幸いです。 > > > > _______________________________________________ > > Wicket-ja-user mailing list > > Wicke****@lists***** > > http://lists.sourceforge.jp/mailman/listinfo/wicket-ja-user > > _______________________________________________ > Wicket-ja-user mailing list > Wicke****@lists***** > http://lists.sourceforge.jp/mailman/listinfo/wicket-ja-user