Vaadin组合框

时间:2011-08-22 09:41:31

标签: vaadin

我想用它中的2个分隔符创建Vaadin下拉列表。我找不到实现这个问题的方法,任何人都可以帮我解决这个问题吗?

这是我想要显示下拉列表的方式:

  • 选项1
  • 选项2
  • ------------;
  • 选择1
  • 选择2
  • -----------;
  • 第1组

我该怎么做?

6 个答案:

答案 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禁用分隔符:

  1. 将项目添加到选择中。 cb.addItem("隔板&#34); cb.setItemCaption(" separator"," -------------");

  2. 执行javascript

    final String javascript =""

    • " var choices = document.getElementsByTagName(' select');"
    • " for(var j = 0; j< choices.length; j ++){"
    • " var op =选择[j] .getElementsByTagName('选项');"
    • " for(var i = 0; i< op.length; i ++){"
    • " if(op [i] .text =='" + separatorText +"')op [i] .disabled = true;"
    • "}}&#34 ;; 。Page.getCurrent()getJavaScript()执行(JavaScript的);