【问题标题】:how to disable gwt.material.design.client.ui.MaterialLink on specific situation?如何在特定情况下禁用 gwt.material.design.client.ui.MaterialLink?
【发布时间】:2018-09-29 19:48:42
【问题描述】:

我有这个问题,我用 GWT 准备了一个页面,禁用了 Materialink。

我的 Java 视图:

 @UiField
 MaterialLink exportLink;

我的视图.xml:

 <m:MaterialLink ui:field="exportLink" text="Esporta Report" addStyleNames="btn" target="_blank"  float="RIGHT" enabled="false"/>

按钮被禁用,点击无效(GOOD)。

如果用户填写表单,我将启用它。

   exportLink.setHref(updatedUrl());
    exportLink.setEnabled(true);

工作更出色。

当我尝试禁用它时,因为用户输入了错误的值。

exportLink.setHref(null);
            exportLink.setEnabled(false);

该按钮看起来不错,但可以单击它。 有什么建议吗?

【问题讨论】:

标签: gwt material-design gwt-material-design


【解决方案1】:

我找到了这个解决方案:

public class MyMaterialLink extends MaterialLink {

   @Override
    public void setEnabled(boolean enabled) {
        super.setEnabled(enabled);
        if(!enabled){
            if (getElement().getAttribute("href") != null) {//per prevenire doppi disabled che cancellano l'href-disabled
                getElement().setAttribute("data-href-disabled", getElement().getAttribute("href"));
                getElement().removeAttribute("href");
            }
        }else {
            getElement().setAttribute("href",getElement().getAttribute("data-href-disabled"));
            getElement().removeAttribute("data-href-disabled");
        }

    }

    @Override
    public void setHref(String href) {

        if(!isEnabled()){
            getElement().setAttribute("data-href-disabled",href);
        }else {
            super.setHref(href);
        }
    }

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-02-12
    • 2017-09-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多