当在列表项上悬停时,GWT ListBox getSelectedIndex()无法正常工作

时间:2012-06-19 14:42:03

标签: gwt listbox

我有一个GWT ListBox。我的验证代码询问ListBox的选定索引是否为-1(我的ListBox的默认状态)。如果我不触及ListBox,则getSelectedIndex()会按预期返回-1。 如果我将鼠标悬停在ListBox项目上但未单击其中一项(即单击外部),则getSelectedIndex()将返回非 - ( - 1)索引。我希望它返回-1,除非我单击ListBox项并且ListBox更新自身以反映该选择。

我该怎么办?

1 个答案:

答案 0 :(得分:0)

由于浏览器确定所选元素是什么,而不是GWT,因此您将无法以一种很好的方式使用本机<select>元素。换句话说,这就是<select>的工作原理。

您必须创建自己的选择小部件(无论如何可能是出于造型原因而首选),或者在现有小部件旁边创建并创建一些内容。您可以向ListBox添加一个单击处理程序,并“手动”将所选索引设置为-1,但您必须确定用户是否取消其操作并在之后恢复选择。您必须从自定义代码中抑制选择事件,因为您可能不希望应用程序的其余部分对您的新-1 hack做出反应。啊!可能最容易以不同的方式处理这个问题。