有没有办法使com.google.gwt.user.client.ui.HTML
小部件启用或不启用?我试过但似乎没有 setEnabled(boolean) 方法:S 请分享您的经验
谢谢
有没有办法使com.google.gwt.user.client.ui.HTML
小部件启用或不启用?我试过但似乎没有 setEnabled(boolean) 方法:S 请分享您的经验
谢谢
您需要同时覆盖样式和事件处理实现。在enableFl
你的MyHTMLPanel extends HTMLPanel
.
第 1 步- 提供启用和禁用样式。使用 opacity css 打开/关闭灰色的着色。根据 enableFl 的状态打开/关闭启用/禁用功能。
第 2 步onBrowserEvent
- 通过覆盖并使其执行取决于您自己的 enableFl 状态来禁用/启用小部件上的事件处理。
第 3 步- 递归禁用 HTMLPanel 内部的所有小部件。
如果您的用例很简单,您可能会选择使用com.google.gwt.user.client.ui.HTML而不是com.google.gwt.user.client.ui.HTMLPanel。
不幸的是,Widget 中没有这样的方法。
但是还有一点空间可以实现。我在谷歌群组的帮助下使它工作
public void setEnabled (boolean e)
{
Iterator<Widget> itr = grd.iterator (); // grd is a FlexTable which
contains my form controls
while (itr.hasNext ())
{
Widget w = itr.next ();
if (w instanceof TextBox)
{
TextBox t = (TextBox) w;
t.setEnabled (e);
}
if (w instanceof PasswordTextBox)
{
PasswordTextBox t = (PasswordTextBox) w;
t.setEnabled (e);
}
...
}
只有少数 HTML 元素可以启用或禁用,例如输入。GWT 为可以获得焦点的元素设置了 setEnabled():
我不确定您所说的启用是什么意思,但我会尝试一下。
我假设您的意思是可见或不可见。
HTMLPanel panel = new HTMLPanel();
panel.setVisible(false); // Disabled
panel.setVisible(true); // Enabled
希望这就是你要找的。
只能禁用某些表单元素(输入、选项)。
要禁用:
widget.getElement().setAttribute("disabled","disabled");
再次启用:
widget.getElement().removeAttribute("disabled");
对于其他小部件,您需要将它们的样式设置为模仿“禁用”。(例如将颜色设置为灰色)