簡體   English   中英

在文本框具有焦點時將文本框文本更新到 DB

[英]Update text box text to DB while the text box has focus

我正在尋找在文本框仍包含焦點時將文本框文本值更新到 DB 的最佳解決方案。 我不想在 TextChanged 或 Leave 事件上執行此操作,考慮到即使文本框包含焦點並且用戶停止輸入,我也需要從 DB 查詢實際值。

Every X seconds (Using a Timer)

    if (txtMyTextBox.Text != previousText)
       previousText = txtMyTextBox.Text;
    else //(if the text is the same before X seconds)
         //User has stopped typing! Save it to the database
         //Stop the timer!

txtMyTextBoxTextChange事件將檢查Timer是否停止,如果是,則重新啟動它。

X是秒數,如果沒有收到輸入,則您決定用戶已停止輸入。

鑒於有很多文本框,這可能會變得非常麻煩:S 所以我絕對同意應該有更好的方法。

我會 go 另一種方式:

首先定義您假設用戶停止輸入的時間。 LostFocus 是一個很好的指示,因為用戶明確地離開了文本框。 超時的可信度要低得多,因為用戶可能打字速度很慢或可能會分心。 然后讓程序更改文本可能會使用戶感到困惑。

您甚至可以創建一個雙值文本框控件:一個輸入字段接受用戶輸入,另一個(只讀)字段顯示數據庫中的當前值。 該控件可能有一個按鈕,允許用戶接受來自數據庫的值。

這一切感覺就像是在試圖避開經典樂觀並發問題中令人討厭的一面:如果數據庫中的值在編輯過程中發生變化怎么辦?

您在此處創建的解決方案有很多開銷,可能不值得(看看網絡流量......)只允許用戶輸入一個值。 將其傳回數據庫,捕獲沖突並允許用戶處理沖突。 這將更好地擴展並且更容易實現。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM