有没有办法让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,我在同一上下文中询问了不同的问题。)
答案 0 :(得分:4)
以下是我解决此问题的方法。非常感谢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) + "\"");
}
}
答案 1 :(得分:1)
您是否尝试过重写方法appendOptionHtml?您可以使用它来附加所需的html(即title =“toolTipText”)。