2012-12-03 108 views
0

簡單...我是這個新手。AjaxControlToolkit AutoCompleteExtender ...如何從linq查詢填充?

好吧,我已將AutoCompleteExtender添加到了我的網頁。用戶會將搜索標籤添加到項目中,並且我希望文本框自動完成數據庫中已存在的標籤。

我沒有「註冊表」標籤;只有一個包含tagName和projectID的表。所以,tagName可能會在表格中重複多次。所以我只想在我的查詢中返回不同的結果。 (這很容易。)

但是,我如何將它綁定到AutoCompleteExtender?我不精通Web服務,等等。

我使用實體框架,僅供參考......

這裏是aspx頁面上自動完成我的代碼:

<asp:TextBox ID="TagNameTextBox" runat="server"></asp:TextBox> 

<ajaxToolkit:AutoCompleteExtender ID="TagNameTextBox_AutoCompleteExtender" 
runat="server"  
ServiceMethod="GetCompletionList" 
MinimumPrefixLength="2" 
EnableCaching="false" 
DelimiterCharacters="" 
Enabled="True" 
TargetControlID="TagNameTextBox"> 
</ajaxToolkit:AutoCompleteExtender> 

而這裏的我的LINQ查詢:

  var qrygettags = (from t in db.TagTables 
          select new { t.TagName }).Distinct().ToString(); 

我發現一個jQuery的解決方案的幾個例子,太多,但我不知道如何讓我的查詢到該格式。任何幫助或想法將不勝感激!

回答

1

那麼,我一直在四處尋找,發現這個看似簡單的解決方案,它適用於我。

在aspx頁面

,在控制,我有

ServiceMethod="GetTagNames" 

,並在CS頁面添加此頁面加載:

[System.Web.Services.WebMethod] 
public static string[] GetTagNames(string prefixText, int count) 
{ 
    mydatabase db = new mydatabase(); 
    return db.TagTables.Where(n => n.TagName.StartsWith(prefixText)).OrderBy(n => n.TagName).Select(n => n.TagName).Distinct().Take(count).ToArray(); 
} 

希望這會幫助別人那裏!