0

放轻松...我是这方面的新手。

好的,我已将 AutoCompleteExtender 添加到我的网页中。用户将搜索标签添加到项目中,我希望文本框使用数据库中已经存在的标签自动完成。

我没有标签的“注册表”;只有一个带有 tagName 和 projectID 的表。因此,一个 tagName 可能会在表中重复多次。所以我只想在我的查询中返回不同的结果。(这很容易。)

但是我如何将它绑定到 AutoCompleteExtender?我不精通WebServices等...

我正在使用实体框架,仅供参考...

这是我在 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 解决方案的示例,但我不知道如何将我的查询转换为该格式。任何帮助或想法将不胜感激!

4

1 回答 1

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();
}

希望它会帮助其他人!

于 2012-12-03T19:07:45.273 回答