轻松一点......我是新手。
好的,我已将AutoCompleteExtender添加到我的网页。用户将向项目添加搜索标签,我希望文本框能够使用数据库中已存在的标签自动完成。
我没有标签的“注册表”;只有一个带有tagName和projectID的表。因此,tagName可能会在表中重复多次。所以我只想在查询中返回不同的结果。 (这很容易。)
但是如何将它绑定到AutoCompleteExtender?我不熟悉Web服务等......
我正在使用实体框架,fyi ...
这是我在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解决方案的例子,但我不知道如何将查询转换为该格式。任何帮助或想法将不胜感激!
答案 0 :(得分: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();
}
希望它可以帮助其他人!