java - Wicket - DropDownChoice - 选项的标题(工具提示)

标签 java wicket

有没有办法让 Wicket 中的 DropDownChoice 将工具提示(例如标题属性)分配给各个选项元素?

我有以下形式的选择框项目:

public class SelectBoxItem
{
    private Long id;
    private String label;
    private String description;
}

所有项目都从数据库中加载。

我使用 ChoiceRenderer 配置 DropDownChoice 组件,以使用 id 作为键,使用标签作为值。

现在我需要将其配置为将描述也用作工具提示消息。


我只找到了this related thread在互联网上。浏览相关的 Wicket 类让我得出与作者相同的结论,例如这对于当前版本的 DropDownChoice/ChoiceRenderer 类可能是不可能的。是对的吗?在这种情况下,是否有类似的组件允许这样做?


(有关我的代码库的更全面描述,请参阅 my other question,我在其中询问了同一上下文中的不同问题。)

最佳答案

这是我对这个问题的解决方案。非常感谢 Andrea Del Bene 的建议。

public class TitledDropDownChoice<T> extends DropDownChoice<T> {

//  ... constructors from superclass ...

@Override
protected void appendOptionHtml(AppendingStringBuffer buffer,
        T choice, int index, String selected) {

    super.appendOptionHtml(buffer, choice, index, selected);

    // converts <option value="foo">bar</option> to
    // <option value="foo" title="bar">bar</option>
    String replString = "value=\"" + getChoiceRenderer()
        .getIdValue(choice, index) + "\"";
    int pos = buffer.indexOf(replString);
    buffer.insert(pos + replString.length(), 
        " title=\"" + getChoiceRenderer().getDisplayValue(choice) + "\"");

}

}

关于java - Wicket - DropDownChoice - 选项的标题(工具提示),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12234738/

相关文章:

java - 构造函数注入(inject)阻止自定义资源处理

java - 检查素因数分解中的素性

java - 将对象引用存储到 volatile 字段中

java - 使用填充密码解密时,非法 block 大小异常输入长度必须是 16 的倍数

java - Wicket - 更新 PropertyModel 时表单组件丢失引用

forms - Wicket:模态窗口中的表单

java - Wicket 口:页面重新加载后不会出现更改

java - Swing java 中出现错误 - IllegalArgumentException

java - 如何阻止JQWicket的AjaxSlider向右滑动?

java - 无状态 AjaxFallbackButton?