Autocomplete Extender ajax при нажатии клавиши ввода

Я создал на своей веб-странице расширитель автозаполнения 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;

}

person Ankita    schedule 05.06.2013    source источник
comment
Я получил ответ, добавил FirstRowSelected = true в свойствах расширителя автозаполнения и теперь функционал работает !!   -  person Ankita    schedule 05.06.2013
comment
вы должны добавить это как ответ и пометить его как принятый   -  person Martin Belcher - AtWrk    schedule 23.02.2017


Ответы (1)


Я заставил его работать.

Я добавил FirstRowSelected = "true" в свойствах расширителя автозаполнения, и теперь функциональность работает !!

person Ankita    schedule 28.02.2017