gpt4 book ai didi

java - Wicket DropDownChoice 中的分隔符

转载 作者:搜寻专家 更新时间:2023-10-31 08:18:08 24 4
gpt4 key购买 nike

是否有一些明显的方法可以将分隔符添加到 Wicket DropDownChoice 中的选项列表?在我的例子中,我使用来 self 的数据源的两种类型的域对象来填充选择。我想我可以手动将某种虚拟域对象添加到选择列表中,但感觉很难看。

例子:

+---------+-+
| Apple |▼|
| Orange +-+
| ------- |
| Carrot |
| Cucumber|
+---------+

当前代码(没有任何分隔符)看起来像这样:

EntityModel model = getModel();
List<? extends Produce> foods = foodService.getAllProduce();
// getAllProduce() returns first all fruits, then all vegetables
add(new DropDownChoice<Produce>(
"produceSelect", new PropertyModel<Produce>(model, "favProduce"), foods)
);

最佳答案

我最终使用来自 wicket-extensionsSelectSelectOptions 组件解决了这个问题正如 martin-g 所提到的。

SelectOptions<Produce> fruitOptions = new SelectOptions<Produce>(
"fruits",
fruitCollection,
new FruitRenderer());

SelectOptions<Produce> vegetableOptions = new SelectOptions<Produce>(
"vegetables",
vegetableCollection,
new VegetableRenderer());

Select select = new Select("produceSelect",
new PropertyModel<Produce>(model, "favProduce"));
select.add(fruitOptions);
select.add(vegetableOptions);

相应的 HTML 看起来像这样:

<select wicket:id="produceSelect" id="produceSelect">
<optgroup label="Fruits">
<wicket:container wicket:id="fruits">
<option wicket:id="option">Apple</option>
</wicket:container>
</optgroup>
<optgroup label="Vegetables">
<wicket:container wicket:id="vegetables">
<option wicket:id="option">Carrot</option>
</wicket:container>
</optgroup>
</select>

这会产生一些不同但更好的最终结果,因为 optgroup 标签是粗体且无法选择:

+----------------+-+
| **Fruits** |▼|
| Apple +-+
| Orange |
| **Vegetables** |
| Carrot |
| Cucumber |
+----------------+

关于java - Wicket DropDownChoice 中的分隔符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6592893/

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