Проверить AutoCompleteExtender

Привет, мне нужно проверить значение текстового поля, чтобы принимать только значения, которые находятся в списке завершения связанного элемента управления автозаполнения.

Я использую ajaxtoolkit (версия 20229) на asp.net 2.0.

На данный момент я использую приведенный ниже код для проверки текстового поля; как вы можете видеть, у меня было скрытое поле, в котором хранится выбранный ключ. Скрытое поле устанавливается равным 0, если пользователь вводит значение, не выбирая его из списка.

Есть ли у вас какие-либо идеи? Спасибо

/**** Код Javascript

   function AutoCompleteItemPopulated(source, eventArgs)
        {
             var assocHiddenField = document.getElementById( source.get_element().id+'_hidden');
             assocHiddenField.value=0;
}



function AutoCompleteItemSelected(source, eventArgs)
        {
            var assocHiddenField = document.getElementById( source.get_element().id+'_hidden');

            assocHiddenField.value = eventArgs.get_value();

          }

/*****Код CODEBEHIND, используемый для заполнения списка автозаполнения

[System.Web.Services.WebMethodAttribute(), System.Web.Script.Services.ScriptMethodAttribute()]
    public static string[] getStrada(string prefixText, int count, string contextKey)
    {
        System.Collections.Generic.List<string> items = new System.Collections.Generic.List<string>();
        DataSetIncidentiTableAdapters.StradarioTableAdapter adapter = new DataSetIncidentiTableAdapters.StradarioTableAdapter();
        DataSetIncidenti.StradarioDataTable dtStrade = adapter.GetStrade(contextKey, prefixText);

            foreach (DataSetIncidenti.StradarioRow strada in dtStrade.Rows)
            {
                items.Add(AjaxControlToolkit.AutoCompleteExtender.CreateAutoCompleteItem(strada.DenominazioneCompletaVia, strada.IdStrada.ToString()));
            }

        return items.ToArray();
    }

person Liuc    schedule 01.03.2011    source источник


Ответы (1)


Да, это можно проверить; для этого вам нужно использовать CustomValidator, в котором вы можете настроить функцию проверки как клиента, так и сервера, а затем проверить скрытое поле на предмет его значения.

Это отлично работает для нас.

ХТН.

person Brian Mains    schedule 01.03.2011
comment
Хорошо, спасибо, теперь валидация работает правильно, но после отображения ошибки валидации автозаполнение больше не работает. - person Liuc; 02.03.2011
comment
Может потребоваться повторная инициализация, это звучит как ошибка, и вы можете захотеть войти на форум ACT (forums.asp.net). Опять же, возможно, это было исправлено и в более поздней версии... - person Brian Mains; 02.03.2011