是否有可能將DataTable作爲TextBox中的AutoCompleteSource? (C#)是否有可能將DataTable作爲TextBox中的AutoCompleteSource? (C#)
2
A
回答
4
賈裏德是正確的 - 你不能沒有做一些操作直接綁定。下面是一個使用LINQ數據集擴展檢索字段作爲自動完成源的例子:
DataTable dtPosts = new DataTable();
using (SqlConnection conn = new SqlConnection(ConfigurationManager.ConnectionStrings["StackOverflow"].ConnectionString))
{
conn.Open();
using (SqlDataAdapter adapt = new SqlDataAdapter("SELECT TOP 100 Id, Title, Body, CreationDate FROM Posts WHERE Title IS NOT NULL ORDER BY Id", conn))
{
adapt.SelectCommand.CommandTimeout = 120;
adapt.Fill(dtPosts);
}
}
//use LINQ method syntax to pull the Title field from a DT into a string array...
string[] postSource = dtPosts
.AsEnumerable()
.Select<System.Data.DataRow, String>(x => x.Field<String>("Title"))
.ToArray();
var source = new AutoCompleteStringCollection();
source.AddRange(postSource);
textBox1.AutoCompleteCustomSource = source;
textBox1.AutoCompleteMode = AutoCompleteMode.SuggestAppend;
textBox1.AutoCompleteSource = AutoCompleteSource.CustomSource;
-1
是的。
下面是使用強類型DataSet和兩個文本框的例子(source ...滾過大圖像頂部去的代碼)未直接
For Each store As StoreDataSet.StoreRow In StoreDataSet.Store
If store.StoreID.StartsWith("0") Then
StoreIDTextBox.AutoCompleteCustomSource.Add(store.StoreID.TrimStart("0"))
End If
StoreIDTextBox.AutoCompleteCustomSource.Add(store.StoreID)
StoreNameTextBox.AutoCompleteCustomSource.Add(store.StoreName)
Next store
3
,你會想讀你的數據表變成了AutoCompleteStringCollection
。
你可以做這樣的事情(from here):
private AutoCompleteStringCollection GetAutoSourceCollectionFromTable(DataTable table)
{
AutoCompleteStringCollection autoSourceCollection = new AutoCompleteStringCollection();
foreach (DataRow row in table.Rows)
{
autoSourceCollection.Add(row[0]); //assuming required data is in first column
}
return autoSourceCollection;
}
1
我想你已經知道你的答案,但有人誰到這個問題,答案是否定的,如果你是如有疑問,請參閱支持的選項AutoCompleteSource。
當談到Winforms中的自動完成自定義數據時,我們使用AutoCompleteCustomSource選項,該選項只能獲取或設置AutoCompleteStringCollection。現在
,您可以用您想要的查詢和方法,從數據庫中獲取記錄填充的DataTable,然後你可以通過數據表的DataRow元素遍歷這些記錄添加到StringCollection。這是一個被Leandro Tuttini做出一個簡單的例子:
textBox1.AutoCompleteCustomSource = LoadAutoComplete(); //this method is below
textBox1.AutoCompleteMode = AutoCompleteMode.Suggest;
textBox1.AutoCompleteSource = AutoCompleteSource.CustomSource;
public static AutoCompleteStringCollection LoadAutoComplete()
{
DataTable dt = LoadDataTable(); //suppose this method returns a DataTable with fetched records from database.
AutoCompleteStringCollection stringCol = new AutoCompleteStringCollection();
foreach (DataRow row in dt.Rows)
{
stringCol.Add(Convert.ToString(row[0]));
}
return stringCol; //return the string collection with added records
}
相關問題
- 1. 是否有可能將簡單的radtextbox轉換爲radnumeric-textbox
- 2. 是否有可能將隊列數據添加到C#中的DataTable?
- 3. 是否有可能將函數作爲參數傳遞給c?
- 4. 是否有可能將json輸出作爲jquery中的數組?
- 5. 是否有可能將DateTimeKind.Utc中的Timestamp作爲輸出模板?
- 6. 是否有可能將js嵌入c#
- 7. 是否有可能?(C++)
- 8. 是否有可能將值作爲ArrayList存儲在SharedPreferences中?
- 9. 是否有可能使用C++作爲Electron.js的後端?
- 10. 是否有可能將AsyncTask的結果作爲Arraylist HashMap獲取
- 11. 是否有可能在C++中將任意指針作爲輸入參數?
- 12. 是否有可能在C中實現temeplatization,因爲它可能在C++中
- 13. 是否有可能將DataContract作爲MessageContract的成員?
- 14. 是否有可能將模型類作爲rails的角色?
- 15. 是否有可能要在Windows Phone 8.1 RT的TextBox
- 16. 是否有可能#include在C++類中?
- 17. 是否有可能在c#中「鏈」EventHandlers?
- 18. 是否有可能將C代碼編譯爲Javascript代碼?
- 19. 是否有可能將Gmisc中的TransitionPlot標記爲計數?
- 20. 是否有可能將kubernetes作爲碼頭集裝箱運行?
- 21. 是否有可能將GetAllMessages和Purge作爲事務
- 22. 是否有可能將範圍作爲變量「var = k:k + number」
- 23. 是否有可能將位圖圖像製作爲數組?
- 24. 是否有可能將SiteMap作爲JsonResult返回?
- 25. 是否有可能將記錄數組作爲記錄字段?
- 26. 是否有可能將ruby作爲整數讀取12:34?
- 27. 是否有可能將war檔案作爲庫使用?
- 28. 是否有可能將Subversion存儲庫作爲Git子模塊?
- 29. 是否有可能將迭代器作爲索引返回?
- 30. 是否可以忽略TextBox?
感謝您的回答...但它似乎很複雜,我理解你的代碼...我只是新的節目,我選擇學習C#語言。我還不知道使用LINQ。 – yonan2236 2010-07-28 02:37:08
但我有你的想法.. – yonan2236 2010-07-28 02:37:58
@DavidHoerster你怎麼知道哪一個是從字符串數組中選擇的? – Igor 2013-02-10 23:59:40