AutoCompleteExtender — заставить пользователя иметь возможность выбирать только из возвращаемого списка — ASP.NET

У меня есть AutoCompleteExtender в текстовом поле для фамилии, имени, уникального идентификатора.

Я хотел бы сделать так, чтобы пользователи могли выбирать только элемент из списка, а не вводить свой уникальный идентификационный номер. Я не могу использовать AJAX ComboBox, потому что база данных, которую мне нужно использовать, очень большая, и я читал, что AutoCompleteExtender лучше всего подходит для больших баз данных.

Любые идеи, как я могу это сделать? Javascript - лучший вариант для меня на данный момент. Я бы предпочел не делать этого в коде позади. Я нашел только один пример по этому поводу. Я попытался использовать onblur="checkItemSelected(this)" с некоторым Javascript, но проблема в том, что я уже использую onclientclick="alert('Ваши данные были СОХРАНЕНЫ!')", потому что эта страница предназначена для ввода пользователем многих имена на одном экране, и это не сотрудничает.

Большое спасибо за помощь.


person user1911069    schedule 18.12.2012    source источник
comment
Итак, как вы заполняете поле ID? Почему вы не можете использовать для этого поле выбора? Если вы не можете ввести его, то какой смысл иметь текстовое поле? Если вы заполняете его на основе значений из других полей ввода, то, похоже, вам следует рассмотреть другой элемент управления.   -  person Colin Pear    schedule 20.12.2012


Ответы (1)


Лучшим способом действий оказалось использование небольшого Javascript onBlur в текстовом поле, которое использовало AutoCompleteExtender.

Вот код:

вар isItemSelected = ложь;

  //Handler for AutoCompleter OnClientItemSelected event
  function onItemSelected() {
      isItemSelected = true;
  }

  //Handler for textbox blur event
  function checkItemSelected(myTextBox) {
      if (!isItemSelected) {
          alert("Please select item from the list only!");
          myTextBox.focus();
      }
      else {
          //reset isItemSelected
          isItemSelected = false;
      }
  }

And then throw this in the Textbox:

onblur="checkItemSelected(это)"

person user1911069    schedule 20.12.2012