2012年4月12日 星期四

TextBox輸入文字自動完成(非WebService和使用WebService寫法整理)


新增項目 App_Code/cs
檔類別
App_Code/cs檔方法 網頁程式
使用WebService WebService.asmx、WebService.cs檔 類別加[System.Web.Script.
Services.ScriptService]屬性,
並繼承System.Web.
Services.WebService
方法不可宣告static否則無效 aspx頁面的AutoCompleteExtender擴充項
須指定ServicePath
不使用WebService 加入一個類別AutoComplete_
WebPage.cs
類別繼承System.Web.
UI.Page
一定要宣告成static才有效果 aspx.cs須繼承自訂類別
範例程式檔

眼尖的讀者可以發現以上的SQL查詢會有SQL Injection危險,所以以上 SqlDataAdapter 的查詢語法最好改成以下:
string selectStr = @"SELECT Top (" + count + ") CompanyName FROM Customers Where CompanyName Like  @prefixText + '%' Order by CustomerID ASC";
SqlDataAdapter da = new SqlDataAdapter(selectStr, conn);
da.SelectCommand.Parameters.AddWithValue("@prefixText", prefixText);


再附上黑暗執行緒網友的jQuery AutoComplete懶人包文章
MSDN相關討論:http://social.msdn.microsoft.com/Forums/zh-TW/236/thread/0ffc9ef8-3577-4f2c-9867-aae692235717
2011/10/19 追加說明
如果是在MasterPage或是WebControl做自動完成的話,建議採用WebService的方式,才能成功。


原始文章出自於此


沒有留言:

張貼留言