0

概念

当用户单击 removeUser 标签时,会弹出一个文本框。然后,用户输入他们想要删除的用户的用户名。然后,用户点击“Enter”删除用户。

GWT 问题

我正在使用一个实现类型对象的类,com.google.gwt.user.client.ui.Composite.

它的一个字段包括一个@UiField 标签:

@UiField
Label removeUser;

而且我有一个常规的 TextBox,当单击 removeUser Label 时应该出现该文本框。

 private TextBox removeUserTextBox = new TextBox();

如果我的代码是正确的,那么当点击 removeUser 时会出现 removeUserTextBox。

   removeUser.addClickHandler(new ClickHandler()
    {
        public void onClick(final ClickEvent event)
        {   
            removeUserTextBox.setVisible(true);
            removeUserTextBox.setText("blah blah")
            removeUserTextBox.addStyleName(StaticResourceBundle.
INSTANCE.coreCss().removeUserTextBox());
            }
        });

但是,当我单击 removeUser 标签时,removeUserTextBox 不显示。

我不认为(或不知道)这是否是 CSS 问题,因为 removeUserTextBox 的 CSS 类似于 removeUser 的 CSS,它显示正确。

请指教。

谢谢,凯文

4

2 回答 2

1

您的文本框似乎未附加到 DOM。您可以执行以下任一操作。

1)在标记(uiBinder)中包含一个文本框,并使用@UiField 注释注入它。

2) 将使用构造函数创建的文本框添加到已附加到 DOM 的 RootPanel 或其他容器。

3)将文本框包装到弹出面板中并相对于标签显示它。我最喜欢这个变体,因为不需要用 css 定位。

于 2012-10-18T04:25:02.470 回答
1

为什么要在处理程序的文本框中添加样式?只需在点击时 setVisible(true),然后在用户确认删除时 setVisible(false)。

于 2012-10-18T02:51:12.650 回答