c# - 按回车键自动完成扩展器ajax

标签 c# ajax asp.net-ajax ajaxcontroltoolkit autocompleteextender

我在我的网页上创建了 Ajax 自动完成扩展程序,用于从数据库中检索值。 当我从自动完成下拉列表中选择一个选项时,我得到了想要的结果。 问题是:

当用户自己键入整个单词(或者如果单词是粘贴的)并且他没有从下拉列表中选择一个选项并按回车键时,结果为空白。 我该如何解决这个问题?

我的自动完成扩展器代码是:

<asp:HiddenField ID="HiddenID" runat="server" />
            <asp:ToolkitScriptManager ID="ToolkitScriptManager1" runat="server">
            </asp:ToolkitScriptManager>
            <asp:TextBox ID="SearchRetailer" runat="server" Style="background-image: url(Search-icon.png ); border: 1px groove black; background-position: right; background-repeat: no-repeat; float: right; width: 20%;" />
            <asp:AutoCompleteExtender
                ID="AutoCompleteExtender1"
                TargetControlID="tgt1"
                runat="server" MinimumPrefixLength="2" ServiceMethod="GetCompletionList" UseContextKey="True" OnClientItemSelected="GetCode" EnableCaching="true" />

javascript函数是:

  <script type="text/javascript" language="javascript">

    function GetCode(source, eventArgs) {
        var hfield = $get('<%=this.HiddenID.ClientID%>');
        hfield.value = eventArgs.get_value();
        window.open("newPage.aspx?Paramter1=" + hfield.value + "", "_self", false);
    }

</script>

我的网络服务代码是:

 [System.Web.Services.WebMethodAttribute(), System.Web.Script.Services.ScriptMethodAttribute()]
public static string[] GetCompletionList(string prefixText, int count, string contextKey)
{

    SqlConnection sqlconn = "my connection string"

    string sql = "select abc from aaa where abc like '" + prefixText + "%'";
    SqlDataAdapter cmd1 = new SqlDataAdapter(sql, sqlconn);
    DataTable dt0r = new DataTable();
    cmd1.Fill(dt0r);
    int i = 0;
    string[] rList = new string[dt0r.Rows.Count];        
    foreach (DataRow dr in dt0r.Rows)
    {
        rList.SetValue(dr["abc"].ToString(), i);

        i++;
    }
    return rList;

}

最佳答案

我让它工作了。

我在自动完成扩展器的属性中添加了 FirstRowSelected="true",现在该功能可以正常工作了!!

关于c# - 按回车键自动完成扩展器ajax,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16943341/

相关文章:

c# - 作为遗留 ASP.NET MVC 应用程序的一部分时,如何在 Web API 2 中对用户进行身份验证?

jquery - Ajax 在 Firefox 中正确实现了吗?同步发行

asp.net-mvc - MVC-Ajax.BeginForm提供htmlfile:未知的运行时错误

c# - 在给定的持续时间内禁用所有表单按钮?

c# - ElasticSearch Nest。术语聚合及其迭代的更好代码

javascript - 为什么我必须将一个函数包含在另一个函数中?

javascript - 使用 javascript/jquery/api 显示有关音乐会的信息

c# - 将启用 Ajax 的 WCF 服务公开给 C# 代码

c# - 基于ASP.NET的MMOG的可行性

C#、WinForms 和扩展方法