在调用方法之前禁用按钮

时间:2015-03-17 13:28:11

标签: components zk

我想在调用方法之前禁用按钮 换句话说,我想将一些代码作为线性执行。

这是代码

@Listen("onClick = #kodIsteButtonId")
public void kodIste() {
   k = kd.findKisiByKullaniciadi(kullaniciadiId.getValue());
   if (k == null) {
         Messagebox.show("Böyle bir kullanıcı bulunamadı!", "Hata Mesajı",
            0, Messagebox.ERROR);
    } else {
         kodIsteButtonId.setDisabled(true);
         countDown(10, 6, k);
    }
}

private void countDown(int fromToZero, int sleepTime, Kisiler k) {
  tempPassword = rasgeleYeniSifre();
  sendEposta(k.getEposta(), tempPassword);
  alert("Güvenlik kodu e-postanıza gönderildi.");
  while (fromToZero > 0) {
    try {
        Thread.sleep(sleepTime * 1000);
    } catch (Exception e) {
        e.printStackTrace();
    }
    fromToZero--;
}
   sifreAlButtonId.setDisabled(false);
   clearButtonId.setDisabled(false);
   kodId.setDisabled(false);
}

当我点击按钮时,我想看到它被禁用 但是在运行countDown()方法之后,它仍然处于启用状态。

可能是什么原因?

1 个答案:

答案 0 :(得分:3)

原因是当您从服务器获得回复时,该按钮会禁用 对于您的情况,这是public void kodIste()完成的时刻。

最简单的解决方案是使用autodisable:

<button autodisable="self" />

禁用并自动启用按钮 如果您想控制按钮何时必须再次启用,您可以执行以下操作:

<button autodisable="+self" />

Documentation can be found here.