我有簡單的ListView,它有3-4列顯示客戶端列表。它下面有一個TextBox
,用於在Sql Server中搜索並顯示相關結果(基本上每輸入一個字母時它都會執行sql query
。它在沒有多少客戶端的情況下工作正常,但超過1000個字母可以顯示一個字母,秒,顯示大量的記錄,那麼另一封信使它有點快,接着又...當WinForms中的字符數大於3時,在ListView中顯示搜索結果
所以我想到了幾個可能的修復的這樣:
- 開始搜索中輸入3個字母后(名稱至少有3個字符),對第1個/第2個字母不做任何處理,並將所有內容顯示爲0(從搜索中返回時仍存在延遲)
- 加載列表一次到
List<string>
或創建某種對象來覆蓋此,但我需要保持與其他用戶完成的任何更改(添加新客戶端,更新名稱等)從其他工作場所同步,並始終用適當的信息更新列表。保持數據庫相關似乎是一個更簡單的想法。 - 其他想法?也許兩者兼而有之?
這裏的代碼示例:
private void klienciSearchBoxTextChanged(object sender, EventArgs e) {
string varSzukaj = klienciSearchBox.Text.Trim();
if (varSzukaj.Length >= 3) {
pobierzDaneSqlKlientaOgolne(listViewKlienci, lvwColumnSorterKlienci, varSzukaj, radioButtonWyszukajPoPortfelu.Checked ? 1 : 0);
} else if (varSzukaj.Length > 0 && varSzukaj.Length < 3) {
// do nothing
} else {
pobierzDaneSqlKlientaOgolne(listViewKlienci, lvwColumnSorterKlienci, varSzukaj, radioButtonWyszukajPoPortfelu.Checked ? 1 : 0);
}
是第一或第二個想法不夠好或有人能提出其他實施?
-1投票值得評論 – MadBoy
我upvoted回零,這是有效的用戶界面場景。不確定誰downvoted。 –