gpt4 book ai didi

java - 如何在 onClick() 中禁用/更改 wicket 按钮链接的样式

转载 作者:搜寻专家 更新时间:2023-11-01 01:11:28 25 4
gpt4 key购买 nike

在 Wicket 应用程序中,我有一堆 <button>我要攻击的元素 Link成分。现在在 onClick()我想禁用或更改按钮样式的组件的方法。我怎样才能做到这一点?打电话setEnabled(false)没有影响。

最佳答案

重复使用 onClick() 是对内存中的同一个对象进行操作。如果您不使用 Ajax,您仍然可以在 Link 的匿名子类中维护一些状态。然后,您可以使用 onBeforeRender() 和 onComponentTag() 来更改每次显示的方式。

Link<Void> link = new Link<Void>("myLink") {

private String customCSS = null;
private boolean customEnabled = true;

public void onClick() {
if (/* test to determine disabled */) {
customCSS = "disabled";
customEnabled = false;
} else {
customCSS = null;
customEnabled = true;
}
}

@Override
protected void onComponentTag(ComponentTag tag) {
super.onComponentTag(tag);
if (customCSS != null)
tag.put("class", customCSS);
}

@Override
public boolean isEnabled() {
return super.isEnabled() && customEnabled;
}
};

AttributeModifiers(或其他行为)不适合这种情况,因为如果您将它们添加到 onClick() 方法中,它们将在每次点击时开始堆叠在同一个链接上 - 因为它们作为链接的一部分进行维护状态。

您的链接可以跟踪各种状态,允许您的 onClick() 方法通过重复点击启用/禁用/更改/等。

您还可以重写 onBeforeRender()、isVisible() 以及每次在页面上显示链接时运行的其他方法。无论您点击按钮多少次,构造函数、onConfigure() 和其他构造函数都只运行一次。

关于java - 如何在 onClick() 中禁用/更改 wicket 按钮链接的样式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5921357/

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