有没有办法让com.google.gwt.user.client.ui.HTML
小部件启用或不启用?我试过但似乎没有setEnabled(布尔)方法:S分享您的经验
由于
答案 0 :(得分:0)
我不确定你启用了什么意思,但我会抓住它。
我认为你的意思是可见或不可见。
HTMLPanel panel = new HTMLPanel();
panel.setVisible(false); // Disabled
panel.setVisible(true); // Enabled
希望这就是你要找的东西。
答案 1 :(得分:0)
只能启用或禁用少数HTML元素,例如输入。 GWT为可以获得焦点的元素设置了setEnabled():
答案 2 :(得分:0)
只能禁用某些表单元素(输入,选项)。
要禁用:
widget.getElement().setAttribute("disabled","disabled");
要再次启用:
widget.getElement().removeAttribute("disabled");
对于其他小部件,您需要将其样式设置为模仿“禁用”。 (例如,将颜色设置为灰色)
答案 3 :(得分:0)
您需要覆盖样式和事件处理实现。在enableFl
中保留MyHTMLPanel extends HTMLPanel
。
第1步 - 提供启用和停用样式。使用不透明度css打开/关闭灰色着色。根据enableFl的状态打开/关闭启用/禁用功能。
第2步 - 通过覆盖onBrowserEvent
并在您自己的enableFl状态下执行条件来禁用/启用窗口小部件上的事件处理。
第3步 - 以递归方式停用HTMLPanel内部的所有小部件。
如果您的用例很简单,您可以选择使用 com.google.gwt.user.client.ui.HTML 而不是 com.google.gwt.user.client.ui .HTMLPanel 。
答案 4 :(得分:0)
不幸的是,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);
}
...
}