我在使用GWT列表框時遇到問題。我有一種情況,用戶從列表框中選擇一個值,但如果他們改變相關字段中的數據,它可能會失效。爲了驗證listBox,用戶必須選擇一個新的值,或者再次選擇相同的值來確認他們的舊選擇。我無法弄清楚如何確定他們是否選擇了相同的值,以便我可以重新調整列表框來查看驗證。GWT ListBox檢測何時重新選擇值
valueChanged處理程序僅檢測是否選擇了新值。 clickHandler和focusHandler過於頻繁地觸發,因爲它們在用戶未選擇值時觸發。有任何想法嗎?
我在使用GWT列表框時遇到問題。我有一種情況,用戶從列表框中選擇一個值,但如果他們改變相關字段中的數據,它可能會失效。爲了驗證listBox,用戶必須選擇一個新的值,或者再次選擇相同的值來確認他們的舊選擇。我無法弄清楚如何確定他們是否選擇了相同的值,以便我可以重新調整列表框來查看驗證。GWT ListBox檢測何時重新選擇值
valueChanged處理程序僅檢測是否選擇了新值。 clickHandler和focusHandler過於頻繁地觸發,因爲它們在用戶未選擇值時觸發。有任何想法嗎?
你可以像這樣提高對clickHandler:
ignoreClick = true;
lastSelection = -1 ;
....
listBox.addClickHandler(new ClickHandler() {
@Override
public void onClick(ClickEvent event) {
if (!ignoreClick) {
lastSelection = listBox.getSelectedIndex();
}
ignoreClick = !ignoreClick;
}
});
我試了一下,如果你選擇了一個項目只觸發事件。但是你應該重新考慮你的用戶界面,就像上面說的那樣。
我最終實現了這一點,它運作良好。這是我正在修復的一個缺陷,所有的代碼已經到位。首先我不會寫這麼奇怪,但其他人也這樣做了,現在我不能重寫整個頁面。謝謝你的幫助! – brainchrist
你能發表一些代碼嗎? –
非常不好的用戶界面的想法。 –
你是什麼意思「非常糟糕的主意」。我在設計中沒有選擇。有沒有更好的方式來實現相同的功能?我將嘗試編輯一些代碼,但它可能沒有多大幫助。 – brainchrist