概念
当用户点击removeUser标签时,会弹出一个文本框。然后,用户输入他们想要移除的用户的用户名。然后,用户点击"输入"删除用户。
GWT问题
我正在使用一个实现类型为com.google.gwt.user.client.ui.Composite.
其中一个字段包含@UiField标签:
@UiField
Label removeUser;
我有一个常规TextBox,当点击removeUser标签时,它会出现。
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,它正确显示。
请告知。
谢谢, 凯文
答案 0 :(得分:1)
为什么要在处理程序的文本框中添加样式?只需单击setVisible(true),然后在用户确认删除时设置setVisible(false)。
答案 1 :(得分:1)
您的文本框似乎没有附加到DOM。您可以执行以下任一操作。
1)在标记(uiBinder)中包含一个textBox,并用@UiField注释注入它。
2)将使用构造函数创建的textBox添加到RootPanel或已附加到DOM的其他容器中。
3)将textBox包装到弹出式面板中,并相对于标签显示它。我最喜欢这个变种,因为没有必要用css定位。