2012-10-18 19 views
2

我在使用GWT列表框時遇到問題。我有一種情況,用戶從列表框中選擇一個值,但如果他們改變相關字段中的數據,它可能會失效。爲了驗證listBox,用戶必須選擇一個新的值,或者再次選擇相同的值來確認他們的舊選擇。我無法弄清楚如何確定他們是否選擇了相同的值,以便我可以重新調整列表框來查看驗證。GWT ListBox檢測何時重新選擇值

valueChanged處理程序僅檢測是否選擇了新值。 clickHandler和focusHandler過於頻繁地觸發,因爲它們在用戶未選擇值時觸發。有任何想法嗎?

+0

你能發表一些代碼嗎? –

+0

非常不好的用戶界面的想法。 –

+0

你是什麼意思「非常糟糕的主意」。我在設計中沒有選擇。有沒有更好的方式來實現相同的功能?我將嘗試編輯一些代碼,但它可能沒有多大幫助。 – brainchrist

回答

2

你可以像這樣提高對clickHandler:

 ignoreClick = true; 
    lastSelection = -1 ; 
      .... 
    listBox.addClickHandler(new ClickHandler() { 

     @Override 
     public void onClick(ClickEvent event) { 

      if (!ignoreClick) { 
       lastSelection = listBox.getSelectedIndex(); 
      } 
      ignoreClick = !ignoreClick;  
     } 
    }); 

我試了一下,如果你選擇了一個項目只觸發事件。但是你應該重新考慮你的用戶界面,就像上面說的那樣。

+0

我最終實現了這一點,它運作良好。這是我正在修復的一個缺陷,所有的代碼已經到位。首先我不會寫這麼奇怪,但其他人也這樣做了,現在我不能重寫整個頁面。謝謝你的幫助! – brainchrist