我想用它中的2个分隔符创建Vaadin下拉列表。我找不到实现这个问题的方法,任何人都可以帮我解决这个问题吗?
这是我想要显示下拉列表的方式:
我该怎么做?
答案 0 :(得分:4)
没有内置方法可以将分隔符添加到选择中。我能想到的唯一方法是添加一个带有所需分隔符的项目作为其标题。例如,如果您使用默认标题(项目ID)select.addItem("-----");
就足够了。这应该适用于ComboBoxes和NativeSelects。
答案 1 :(得分:3)
您可以实现一个新的Vaadin组件,包括客户端行为,但这不是一个简单的解决方案。这个页面https://vaadin.com/book/-/page/gwt.html的“Vaadin书”和Vaadin论坛可以为此提供帮助。
此外,使用现有组件创建自己的组件是另一种解决方案。您可以实现一个特殊的组合框,它采用String或Component数组的值。这样做的方法是使用Vaadin面板,布局和窗口,其大小和位置以及点击监听器。
答案 2 :(得分:0)
我自己没有尝试过,但请在NativeSelection下拉列表中进行操作。
答案 3 :(得分:0)
你可以随时
{select.addItem( “-----”);}
有一次我也想要做类似的事情,但没有适当的方法与Vaadin做到这一点。我实际创建了一个扩展组合框的Vaadin小部件。在Vaadin的客户端小部件中,他们在将项添加到列表之前过滤掉HTML内容。因此,使用客户端代码,我将覆盖该功能,并使用HTML标签“
”添加该行。
答案 4 :(得分:0)
select.addItem("-----");
看起来是最好的方式,我不知道其他一些
顺便说一下,如果您正在阅读某些列表中的项目,可以将其与某个项目计数器和(itemsCount%n)==0
运算符组合,以便在 ' n'之后设置分隔符。插入的项目:)
答案 5 :(得分:0)
您可以将项目添加到所选项目(如前所述),然后使用一些javascript禁用分隔符:
将项目添加到选择中。 cb.addItem("隔板&#34); cb.setItemCaption(" separator"," -------------");
执行javascript
final String javascript =""