gpt4 book ai didi

java - Wicket - 在延迟加载期间隐藏 AjaxButton 上的元素

转载 作者:行者123 更新时间:2023-12-02 06:52:25 26 4
gpt4 key购买 nike

我有一个带有 AjaxLazyLoadPanel 的页面,其中包含一个长加载列表并提交 AjaxButton。

AjaxLazyLoadPanel 准备好后,当我提交时,另一个长时间加载正在执行,之后我需要刷新整个页面。这就是我自己的地方,代码如下:

    AjaxButton button1 = new AjaxButton("submit1") {
@Override
protected void onSubmit(AjaxRequestTarget target, Form form) {
someLongWorkingMethod();
setResponsePage(page); //refreshing page
}
};
add(button1);

而且效果非常好。但我现在想做的 - 是在方法计算时禁用此按钮或隐藏此按钮(或隐藏整个面板,如果需要),并且当使用 setResponsePage 刷新页面时我希望恢复此按钮.

我读过很多关于它的帖子/邮件列表,但没有任何帮助,我尝试了所有找到的东西并将其放在 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)。

我是不是做错了什么或者什么?这是我正在尝试做的事情吗?我真的很感激一些帮助。

最佳答案

在您的 AjaxButton 中,您可以重写 updateAjaxAttributes() 并添加一个 IAjaxCallListener,它会在您单击按钮后立即通过 jQuery 隐藏该按钮。当响应页面呈现时,按钮会再次出现。覆盖的代码如下所示:

@Override
protected void updateAjaxAttributes(AjaxRequestAttributes attributes) {
super.updateAjaxAttributes(attributes);
attributes.getAjaxCallListeners().add(new IAjaxCallListener() {

@Override
public CharSequence getBeforeHandler(Component cmpnt) {
return "$(\"#" + cmpnt.getMarkupId() + "\").hide()";
}

@Override
public CharSequence getPrecondition(Component cmpnt) {
return "";
}

@Override
public CharSequence getBeforeSendHandler(Component cmpnt) {
return "";
}

@Override
public CharSequence getAfterHandler(Component cmpnt) {
return "";
}

@Override
public CharSequence getSuccessHandler(Component cmpnt) {
return "";
}

@Override
public CharSequence getFailureHandler(Component cmpnt) {
return "";
}

@Override
public CharSequence getCompleteHandler(Component cmpnt) {
return "";
}
});
}

关于java - Wicket - 在延迟加载期间隐藏 AjaxButton 上的元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17852301/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com