AjaxLazyLoadPanel を含むページがあります。このページには、長い読み込みリストと AjaxButton の送信が含まれています。
AjaxLazyLoadPanel の準備が整った後、送信すると、別の長い読み込みが実行され、その後、ページ全体を更新する必要があります。これは私が自分自身を取得する場所です。コードは次のようになります。
AjaxButton button1 = new AjaxButton("submit1") {
@Override
protected void onSubmit(AjaxRequestTarget target, Form form) {
someLongWorkingMethod();
setResponsePage(page); //refreshing page
}
};
add(button1);
そして、それは完璧に機能します。しかし、私が今やろうとしているのは、メソッドが計算されているときにこのボタンを無効にするか、このボタン (または必要に応じてパネル全体) を非表示にすることです。 .
私はそれについて多くの投稿/メーリングリストを読みましたが、何も役に立ちませんでした。見つけたすべてのものを試し、someLongWorkingMethod()の前に配置しました:
ajaxLazyLoadPanel.setOutputMarkupId(true);
ajaxLazyLoadPanel.setOutputMarkupPlaceholderTag(true);
ajaxLazyLoadPanel.add(new AttributeAppender("style","display:none;"));
ajaxLazyLoadPanel.setVisible(false);
ajaxLazyLoadPanel.setEnabled(false);
target.add(ajaxLazyLoadPanel);
また、ajaxLazyLoadPanel ではなく、"this" (AjaxButton) についても同じです。
私は何かひどく間違ったことをしていますか、それとも何ですか? これは私がやろうとしていることでもありますか?助けていただければ幸いです。